:root { --ink:#16182b; --muted:#62677e; --paper:#f8f8fc; --white:#fff; --line:#e4e5ef; --blue:#5b5ce2; --violet:#9366e8; }
* { box-sizing:border-box; margin:0; }
body { min-height:100vh; background:linear-gradient(135deg,#faf9ff 0%,#f7f8ff 52%,#f3fcfa 100%); color:var(--ink); font-family:'Noto Sans JP',sans-serif; line-height:1.9; }
a { color:inherit; }.policy-header { border-bottom:1px solid rgba(228,229,239,.82); background:rgba(255,255,255,.68); backdrop-filter:blur(16px); }.policy-nav { max-width:1100px; height:76px; margin:auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; }.brand { font:600 1.35rem/1 'Space Grotesk',sans-serif; letter-spacing:-.06em; text-decoration:none; }.brand span { color:var(--violet); }.back-link { color:var(--muted); font-size:.82rem; text-decoration:none; }.back-link span { margin-right:8px; color:var(--blue); }.back-link:hover { color:var(--blue); }
.policy-main { width:min(100% - 40px,760px); margin:0 auto; padding:92px 0 84px; }.policy-intro { padding:0 0 40px; border-bottom:1px solid var(--line); }.eyebrow { color:var(--violet); font:500 .75rem 'DM Mono',monospace; letter-spacing:.05em; }.policy-intro h1 { margin:13px 0 17px; font-size:clamp(2rem,5vw,3.45rem); letter-spacing:-.06em; line-height:1.25; }.policy-intro > p:not(.eyebrow):not(.updated) { max-width:590px; color:var(--muted); font-size:.94rem; }.updated { display:inline-block; margin-top:24px; padding:5px 10px; border-radius:6px; background:#eef0ff; color:#5556ba; font:.7rem 'DM Mono',monospace; }
.policy-content { padding-top:43px; }.lead { color:#41465d; font-size:.95rem; line-height:2; }.policy-content section { margin-top:44px; }.policy-content h2 { display:flex; align-items:center; gap:11px; margin-bottom:17px; color:var(--ink); font-size:1.12rem; letter-spacing:-.03em; }.policy-content h2::before { content:''; width:4px; height:1.25em; border-radius:4px; background:linear-gradient(var(--blue),var(--violet)); }.policy-content p { color:#4f556c; font-size:.91rem; line-height:2; }.policy-content p + p { margin-top:17px; }.policy-content a { color:#4e50ce; font-weight:600; text-decoration-color:rgba(78,80,206,.35); text-underline-offset:.2em; }.policy-content a:hover { color:var(--violet); text-decoration-color:currentColor; }.policy-footer { width:min(100% - 40px,1100px); margin:auto; padding:28px 0 40px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }.policy-footer small { color:var(--muted); font:.68rem 'DM Mono',monospace; }
@media (max-width:600px) { .policy-nav { height:65px; padding:0 20px; }.back-link { font-size:.75rem; }.policy-main { padding:61px 0 64px; }.policy-intro { padding-bottom:32px; }.policy-intro h1 { font-size:2rem; }.policy-content { padding-top:34px; }.policy-content section { margin-top:35px; }.policy-content p,.policy-intro > p:not(.eyebrow):not(.updated) { font-size:.87rem; }.policy-footer { padding:24px 0 30px; }.policy-footer .brand { font-size:1.15rem; } }
