:root{--navy:#0A1A3A;--blue:#1E6BFF;--cyan:#4FD1FF;--graphite:#2B3039}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP','Zen Kaku Gothic New',sans-serif;color:#1d2330;-webkit-font-smoothing:antialiased}
.font-head{font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;letter-spacing:.02em}
.font-en{font-family:'Space Grotesk',sans-serif;letter-spacing:.14em}
.grid-bg{background-image:linear-gradient(rgba(79,209,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(79,209,255,.07) 1px,transparent 1px);background-size:44px 44px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
.wave-ring{position:absolute;border:1px solid rgba(79,209,255,.5);border-radius:50%;animation:ping 6s ease-out infinite;opacity:0}
.wave-ring:nth-child(2){animation-delay:2s}.wave-ring:nth-child(3){animation-delay:4s}
@keyframes ping{0%{transform:scale(.2);opacity:.8}100%{transform:scale(1);opacity:0}}
.card{background:#fff;border:1px solid #e3e8f1;border-radius:14px;transition:transform .3s,box-shadow .3s,border-color .3s}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(10,26,58,.35);border-color:#1E6BFF}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:999px;font-weight:700;transition:all .25s;cursor:pointer}
.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#0f52d6}
.btn-ghost{border:1px solid rgba(255,255,255,.5);color:#fff}.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-dark{background:var(--navy);color:#fff}.btn-dark:hover{background:var(--blue)}
.field{width:100%;border:1px solid #cfd7e6;border-radius:10px;padding:.75rem .9rem;background:#fff;transition:border .2s,box-shadow .2s}
.field:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,107,255,.18)}
.toast-wrap{position:fixed;right:1rem;bottom:1rem;z-index:100;display:flex;flex-direction:column;gap:.6rem;max-width:calc(100vw - 2rem)}
.toast{background:var(--navy);color:#fff;border-left:4px solid var(--cyan);padding:.9rem 1.1rem;border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.3);animation:tin .35s ease;font-size:.9rem}
.toast.error{border-color:#ff6b6b}
@keyframes tin{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.prose-jp h2{font-family:'Zen Kaku Gothic New',sans-serif;font-size:1.35rem;font-weight:700;color:var(--navy);margin:2.4rem 0 .8rem;padding-left:.9rem;border-left:4px solid var(--blue)}
.prose-jp p,.prose-jp li{line-height:2;color:#3a4252}.prose-jp ul{list-style:disc;padding-left:1.4rem;margin:.6rem 0}
.nav-link{position:relative;padding:.4rem 0}
.nav-link::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--cyan);transition:width .3s}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.faq summary{cursor:pointer;list-style:none}.faq summary::-webkit-details-marker{display:none}
.faq details[open] .plus{transform:rotate(45deg)}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.wave-ring{animation:none}html{scroll-behavior:auto}}
