:root{--navy:#12233B;--graphite:#2B2D30;--bronze:#9A6B3F;--warm:#F7F3EC}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic',YuGothic,Meiryo,system-ui,sans-serif;background:var(--warm);color:var(--graphite);-webkit-font-smoothing:antialiased}
.font-serif-jp{font-family:'Shippori Mincho','Noto Serif JP',serif}
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.in{opacity:1;transform:none}
.nav-link{position:relative;transition:color .25s}
.nav-link::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--bronze);transition:width .3s}
.nav-link:hover::after,.nav-link.active::after{width:100%}
.nav-link:hover,.nav-link.active{color:var(--bronze)}
.dd{opacity:0;visibility:hidden;transform:translateY(6px);transition:all .25s}
.has-dd:hover .dd,.has-dd:focus-within .dd{opacity:1;visibility:visible;transform:none}
.beam{position:absolute;inset:0;pointer-events:none;background:conic-gradient(from 180deg at 78% -10%,transparent 140deg,rgba(199,154,99,.28) 168deg,transparent 196deg);animation:beam 7s ease-in-out infinite alternate}
@keyframes beam{from{opacity:.45;transform:rotate(-2deg)}to{opacity:1;transform:rotate(2deg)}}
.card-img{overflow:hidden}.card-img img{transition:transform .8s ease}.card:hover .card-img img{transform:scale(1.05)}
.card{transition:box-shadow .3s,transform .3s}.card:hover{box-shadow:0 18px 40px -18px rgba(18,35,59,.35);transform:translateY(-3px)}
.field{width:100%;border:1px solid #d9d2c6;background:#fff;border-radius:.6rem;padding:.7rem .9rem;font-size:.9rem;transition:border .2s,box-shadow .2s}
.field:focus{outline:none;border-color:var(--bronze);box-shadow:0 0 0 3px rgba(154,107,63,.18)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.8rem 1.6rem;font-size:.9rem;font-weight:500;transition:all .25s;cursor:pointer}
.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:var(--bronze)}
.btn-bronze{background:var(--bronze);color:#fff}.btn-bronze:hover{background:#7d5530}
.btn-line{border:1px solid currentColor}.btn-line:hover{background:var(--bronze);border-color:var(--bronze);color:#fff}
#toasts{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;padding:.9rem 1.2rem;border-radius:.8rem;box-shadow:0 12px 30px -10px rgba(0,0,0,.5);font-size:.9rem;border-left:4px solid var(--bronze);animation:tin .35s ease}
.toast.err{border-left-color:#d9534f}.toast.out{opacity:0;transform:translateX(20px);transition:all .4s}
@keyframes tin{from{opacity:0;transform:translateX(20px)}}
summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}
details[open] .plus{transform:rotate(45deg)}.plus{transition:transform .25s}
.prose-jp p{line-height:2;margin-top:1rem}
.prose-jp h2{font-family:'Shippori Mincho',serif;font-size:1.4rem;margin-top:2.5rem;font-weight:700;color:var(--navy);border-left:3px solid var(--bronze);padding-left:.8rem}
.prose-jp ul{list-style:disc;padding-left:1.4rem;margin-top:.8rem;line-height:2}
.prose-jp ol{list-style:decimal;padding-left:1.4rem;margin-top:.8rem;line-height:2}
table.spec{width:100%;font-size:.85rem;border-collapse:collapse;background:#fff}
table.spec th,table.spec td{border:1px solid #e4ddd0;padding:.65rem .8rem;text-align:left;vertical-align:top}
table.spec th{background:#efe8dc;color:var(--navy);font-weight:500;white-space:nowrap}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}

html .text-graphite\/50,html .text-graphite\/55,html .text-graphite\/60{color:rgba(43,45,48,.74)}html .text-bronze{color:#80552D}
html .nav-link.active{color:#80552D}
