*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1d2433;background:#fafbfc}
a{color:#0b3d91}main{max-width:960px;margin:auto;padding:1rem 1.25rem 3rem}
.sponsorbar{background:#0b3d91;color:#dfe7f5;font-size:.85rem;padding:.4rem 1rem;display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;justify-content:center}.sponsorbar a{color:#ffd3d3}
.ph{border:1px dashed #8fa4cf;padding:.1rem .6rem;border-radius:4px}
header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;max-width:960px;margin:auto;padding:1rem 1.25rem}
.brand{font-size:1.4rem;text-decoration:none;color:#1d2433;display:flex;align-items:center;gap:.5rem}.brand b{color:#c8102e}
.flag{display:inline-block;width:22px;height:15px;border-radius:3px;background:linear-gradient(90deg,#0b3d91 33%,#fff 33% 66%,#c8102e 66%);box-shadow:0 0 0 1px #e3e8ef}
nav a{margin-left:1rem;text-decoration:none;position:relative}nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:#c8102e;transition:right .25s}nav a:hover::after{right:0}
.hero{position:relative;overflow:hidden;border-radius:18px;padding:2.6rem 2rem;margin:.5rem 0 1.5rem;color:#fff;background:linear-gradient(120deg,#0b3d91,#1b4fb3 45%,#c8102e 110%);background-size:200% 200%;animation:drift 14s ease-in-out infinite alternate}
.hero::before{content:"";position:absolute;inset:-40% -10% auto auto;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffffff33,transparent 60%);animation:float 9s ease-in-out infinite}
.hero h1{font-size:clamp(1.9rem,5vw,3rem);line-height:1.1;margin:.2rem 0 .6rem;max-width:620px;text-shadow:0 2px 12px #0003}.hero p{max-width:600px;font-size:1.05rem}
.hero .btn{background:#fff;color:#0b3d91}.hero .btn.alt{background:#ffffff22;color:#fff;border:1px solid #ffffff66}
.hero-art{position:absolute;right:1.5rem;bottom:-10px;width:230px;opacity:.95;filter:drop-shadow(0 10px 20px #0004);animation:float 7s ease-in-out infinite}
@media(max-width:760px){.hero-art{width:120px;right:.5rem;bottom:-6px;opacity:.5}}
@keyframes drift{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.btn{display:inline-block;background:#0b3d91;color:#fff;padding:.65rem 1.15rem;border-radius:999px;text-decoration:none;border:0;font:inherit;font-weight:600;cursor:pointer;margin:.2rem 0;transition:transform .15s,box-shadow .15s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0b3d9133}.btn.alt{background:#e9eef8;color:#0b3d91}
.grid,.spons{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.card,.spon{background:#fff;border:1px solid #e3e8ef;border-radius:14px;padding:1rem;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #10213a1a;border-color:var(--c,#0b3d91)}.card h3{margin:.4rem 0 .1rem}.card p{margin:.2rem 0;color:#5a677a;font-size:.95rem}
.ico{display:flex;align-items:center;justify-content:center;border-radius:12px;height:120px;margin:-.2rem -.2rem .4rem;overflow:hidden}.ico svg{width:100px;height:100px;transition:transform .3s}.card:hover .ico svg{transform:scale(1.08) rotate(-2deg)}
.spon{border-style:dashed;text-align:center;font-weight:600;color:#6b7a90;background:linear-gradient(100deg,#fff 40%,#f3f6fb 50%,#fff 60%);background-size:300% 100%;animation:shimmer 4s linear infinite}.spon small{display:block;font-weight:400}
@keyframes shimmer{from{background-position:100% 0}to{background-position:-100% 0}}
.note{background:#fff8e6;border-left:4px solid #f0b400;padding:.5rem .8rem;font-size:.92rem;border-radius:0 8px 8px 0}
.pagehead{display:flex;align-items:center;gap:1.2rem;margin:.6rem 0 .4rem}.pagehead .ico{width:120px;flex:none;margin:0}.pagehead h1{margin:0;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15}
.brandbox{background:#fff;border:1px solid #e3e8ef;border-left:6px solid var(--c,#0b3d91);border-radius:14px;padding:1rem 1.2rem;margin:1.2rem 0;transition:box-shadow .2s}.brandbox:hover{box-shadow:0 10px 26px #10213a14}
.brandbox h2{margin:.2rem 0 .4rem;display:flex;align-items:center;gap:.6rem}.chip{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--c,#0b3d91);color:#fff;font-size:1rem;font-weight:700;flex:none}
.brandbox ul{padding-left:1.2rem;columns:2;column-gap:2rem}.brandbox li{break-inside:avoid;margin:.15rem 0}@media(max-width:640px){.brandbox ul{columns:1}}
.tip{background:#f3f6fb;border-left:4px solid #0b3d91;padding:.5rem .8rem;font-size:.92rem;margin:.6rem 0 0;border-radius:0 8px 8px 0}
.video{position:relative;padding-top:56.25%;border-radius:14px;overflow:hidden;margin:1rem 0;background:#10213a}.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.disc{font-size:.85rem;color:#5a677a}.crumb{font-size:.85rem}.lede{font-size:1.08rem}
.more{font-weight:600;text-decoration:none}.more:hover{text-decoration:underline}
.prods{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e3e8ef;border-radius:12px;overflow:hidden}.prods th,.prods td{text-align:left;padding:.6rem .8rem;border-top:1px solid #e3e8ef;vertical-align:top}.prods th{background:#f3f6fb;border-top:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:#5a677a}.prods td:first-child{font-weight:600;white-space:nowrap}@media(max-width:640px){.prods td:first-child{white-space:normal}}
details{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:.6rem .9rem;margin:.5rem 0}summary{cursor:pointer;font-weight:600}details[open] summary{margin-bottom:.3rem}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}
footer{border-top:1px solid #e3e8ef;color:#5a677a;font-size:.85rem;max-width:960px;margin:auto;padding:1rem 1.25rem}
.drop{animation:dropin 3s ease-in-out infinite}.d2{animation-delay:1.2s}@keyframes dropin{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(-6px);opacity:.6}}
.steam{animation:steam 2.4s ease-in-out infinite;transform-origin:bottom}.s2{animation-delay:.8s}@keyframes steam{0%{opacity:0;transform:translateY(4px)}40%{opacity:1}100%{opacity:0;transform:translateY(-8px)}}
.twinkle{animation:tw 2s ease-in-out infinite}.t2{animation-delay:.6s}.t3{animation-delay:1.3s}@keyframes tw{0%,100%{opacity:.3}50%{opacity:1}}
.leaf{transform-origin:96px 42px;animation:sway 3s ease-in-out infinite}@keyframes sway{0%,100%{transform:rotate(0)}50%{transform:rotate(8deg)}}
@media(max-width:640px){nav a{margin:0 1rem 0 0}.pagehead{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
