:root{--bg-deep:#071820;--bg-mid:#0c2c38;--bg-soft:#123847;--surface:#f7fcfff0;--ink:#10232c;--ink-muted:#4a6672;--accent:#2eb8d9;--accent-strong:#5ed0f0;--accent-warm:#f07a8c;--line:#10232c1f;--shadow:0 24px 60px #04121847;--radius:20px;--font-display:"Sora", "Zen Kaku Gothic New", sans-serif;--font-body:"Zen Kaku Gothic New", "Hiragino Sans", "Noto Sans JP", sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 90% 60% at 10% -10%, #5ed0f047, transparent 55%), radial-gradient(ellipse 70% 50% at 100% 0%, #f07a8c2e, transparent 50%), linear-gradient(165deg, var(--bg-deep) 0%, var(--bg-mid) 45%, var(--bg-soft) 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0}body:before{content:"";pointer-events:none;opacity:.35;z-index:0;background-image:repeating-linear-gradient(-18deg,#0000 0 14px,#5ed0f00d 14px 15px);position:fixed;inset:0}#root{z-index:1;position:relative}a{color:#0d7a96;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:#095f75}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:3px}.page{width:min(920px,100% - 2rem);margin:0 auto;padding:2.5rem 0 3.5rem}.hero{margin-bottom:1.75rem;padding:.25rem .15rem 0;animation:.7s both rise-in}.brand{font-family:var(--font-display);letter-spacing:.02em;color:#f4fbff;text-shadow:0 8px 30px #00000059;margin:0 0 .85rem;font-size:clamp(1.85rem,5vw,2.55rem);font-weight:700;line-height:1.1}.title{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent-strong);margin:0 0 .75rem;font-size:clamp(1.35rem,3.2vw,1.75rem);font-weight:600}.lead{color:#e8f6fce0;max-width:34rem;margin:0 0 .85rem;font-size:.98rem;line-height:1.7}.meta{color:#b4d6e2d9;margin:0;font-size:.86rem}.document{gap:1.25rem;animation:.8s .12s both rise-in;display:grid}.toc,.articles{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.toc{padding:1.25rem 1.35rem 1.35rem}.toc-label{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .7rem;font-size:.78rem;font-weight:700}.toc ol{gap:.35rem;margin:0;padding-left:1.2rem;display:grid}.toc a{color:var(--ink);font-size:.92rem;line-height:1.5;text-decoration:none}.toc a:hover{color:#0d7a96;text-decoration:underline}.articles{padding:.35rem 0;overflow:hidden}.article{border-bottom:1px solid var(--line);padding:1.35rem 1.4rem 1.45rem;scroll-margin-top:1.25rem;animation:.55s both fade-up}.article:first-child{animation-delay:.16s}.article:nth-child(2){animation-delay:.2s}.article:nth-child(3){animation-delay:.24s}.article:nth-child(4){animation-delay:.28s}.article:nth-child(5){animation-delay:.32s}.article:last-child{border-bottom:none}.article h2{letter-spacing:.02em;color:var(--ink);border-left:3px solid var(--accent);margin:0 0 .85rem;padding-left:.75rem;font-size:1.05rem;font-weight:700}.article p{color:var(--ink);margin:0 0 .75rem;font-size:.95rem;line-height:1.85}.article p:last-child{margin-bottom:0}.article-list{gap:.45rem;margin:0 0 .75rem;padding-left:1.25rem;display:grid}.article-list li{color:var(--ink);font-size:.94rem;line-height:1.7}.contact{background:linear-gradient(120deg,#2eb8d91f,#f07a8c1a);border-radius:12px;padding:.85rem 1rem;font-weight:500;margin-top:.35rem!important}.footer{margin-top:1.75rem;padding:.35rem .15rem;animation:.7s .2s both rise-in}.footer-brand{font-family:var(--font-display);color:#e8f6fcf2;margin:0 0 .35rem;font-size:.95rem;font-weight:700}.footer-note{color:#b4d6e2c7;margin:0;font-size:.8rem;line-height:1.6}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (width>=860px){.page{padding-top:3.25rem}.document{grid-template-columns:240px 1fr;align-items:start}.toc{position:sticky;top:1.25rem}}@media (prefers-reduced-motion:reduce){.hero,.document,.article,.footer{animation:none}}
