:root{--navy:#0a1b36;--navy2:#12305c;--blue:#1d5fd1;--blue2:#3b82f6;--bg:#f1f5fb;--card:#fff;--ink:#14213d;--mut:#5b6b85;--line:#d9e1ee;--ok:#15803d;--warn:#b45309;--bad:#b91c1c;--r:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}
h1,h2,h3{line-height:1.25;margin:0 0 .5em;color:var(--navy)}h1{font-size:clamp(1.8rem,4vw,2.8rem)}h2{font-size:1.6rem}h3{font-size:1.15rem}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 12px #0004}
.top .wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.brand{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700}.brand:hover{text-decoration:none}
.brand img{width:46px;height:46px}.brand small{display:block;font-weight:400;color:#9fb6dc;font-size:.75rem}
nav{margin-left:auto;display:flex;flex-wrap:wrap;gap:2px}nav a{color:#cfdcf3;padding:7px 10px;border-radius:8px;font-size:.84rem;white-space:nowrap}
nav a:hover,nav a.on{background:var(--navy2);color:#fff;text-decoration:none}
.burger{display:none;margin-left:auto;background:var(--navy2);color:#fff;border:0;border-radius:8px;padding:8px 12px;font-size:1rem;cursor:pointer}
@media(max-width:1020px){.burger{display:block}nav{display:none;width:100%;flex-direction:column;margin:0}nav.open{display:flex}nav a{padding:10px 12px;font-size:.95rem}}
.hero{background:radial-gradient(ellipse at 20% 0,#1d4a96 0,transparent 60%),linear-gradient(160deg,var(--navy),#0d2a52);color:#fff;padding:64px 0}
.hero .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.hero h1{color:#fff}.hero p{color:#cfdcf3;font-size:1.1rem;max-width:560px}.motto{display:inline-block;border-left:4px solid var(--blue2);padding-left:12px;font-style:italic;color:#9fc2ff;margin-bottom:14px}
.hero img.seal{width:min(340px,70%);margin:0 auto;filter:drop-shadow(0 10px 30px #0008)}
@media(max-width:800px){.hero .wrap{grid-template-columns:1fr;text-align:center}.hero p{margin:0 auto 1em}.hero{padding:40px 0}.hero img.seal{order:-1;width:200px}}
.pagehead{background:linear-gradient(160deg,var(--navy),var(--navy2));color:#fff;padding:36px 0}.pagehead h1{color:#fff;margin:0 0 .2em;font-size:2rem}.pagehead p{margin:0;color:#b9cdef}
section.blk{padding:44px 0}section.blk.alt{background:#e7eef9}
.sh{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:18px;flex-wrap:wrap}.sh h2{margin:0}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.grid.g3{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .18s,box-shadow .18s}
a.card:hover,.card.hov:hover{transform:translateY(-3px);box-shadow:0 10px 26px #12305c22;text-decoration:none}
.card .body{padding:16px}.card .body p{margin:.3em 0;color:var(--mut)}
.thumb{aspect-ratio:16/10;background:#dde6f4 center/cover;display:flex;align-items:center;justify-content:center}.thumb img{width:100%;height:100%;object-fit:cover}.thumb.ph img{width:45%;height:auto;opacity:.25;object-fit:contain}
.avatar{aspect-ratio:1;background:#dde6f4;display:flex;align-items:center;justify-content:center}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.ph img{width:50%;height:auto;opacity:.25;object-fit:contain}
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:-34px;position:relative}
.quick a{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;color:var(--ink);display:flex;gap:12px;align-items:center;box-shadow:0 6px 20px #12305c1a;transition:.18s}.quick a:hover{transform:translateY(-3px);text-decoration:none;border-color:var(--blue2)}
.quick .ic{font-size:1.6rem;background:#e6eefc;width:46px;height:46px;border-radius:10px;display:grid;place-items:center;flex:none}.quick b{display:block}.quick span{font-size:.85rem;color:var(--mut)}
.badge{display:inline-block;font-size:.74rem;font-weight:600;padding:2px 10px;border-radius:99px;background:#e0e9fa;color:var(--navy2)}
.badge.ok{background:#dcfce7;color:var(--ok)}.badge.bad{background:#fee2e2;color:var(--bad)}.badge.warn{background:#fef3c7;color:var(--warn)}
.meta{font-size:.82rem;color:var(--mut)}
.btn{display:inline-block;background:var(--blue);color:#fff;border:0;border-radius:9px;padding:10px 20px;font:600 .95rem inherit;font-family:inherit;cursor:pointer;transition:.15s}.btn:hover{background:#174cab;text-decoration:none}.btn.sec{background:#e6eefc;color:var(--navy2)}.btn.sec:hover{background:#d3e1fa}.btn.danger{background:var(--bad)}.btn.sm{padding:5px 11px;font-size:.82rem}.btn:disabled{opacity:.6;cursor:wait}
.form{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;max-width:820px}
.form label,.fl{display:block;font-weight:600;font-size:.9rem;margin:14px 0 4px}.form .row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}@media(max-width:640px){.form .row{grid-template-columns:1fr}}
input,select,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid #b9c6dc;border-radius:8px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue2);outline-offset:0;border-color:var(--blue2)}textarea{min-height:100px;resize:vertical}
input[type=checkbox]{width:auto;margin-right:8px}.chk{display:flex;align-items:flex-start;font-weight:400!important;margin:16px 0}
.msg{margin-top:14px;padding:12px 14px;border-radius:9px;display:none}.msg.show{display:block}.msg.ok{background:#dcfce7;color:#14532d}.msg.err{background:#fee2e2;color:#7f1d1d}.msg b{font-size:1.15rem;letter-spacing:.05em}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.filters input,.filters select{width:auto;flex:1 1 170px}
.pager{display:flex;gap:6px;justify-content:center;margin-top:22px;flex-wrap:wrap}.pager button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 12px;cursor:pointer;font:inherit}.pager button.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.empty{text-align:center;color:var(--mut);padding:36px 16px;background:#fff;border:1px dashed var(--line);border-radius:var(--r)}
.leader{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}.leader .card{border-top:4px solid var(--blue)}
.cal{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:24px}.cal-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.cal-h h3{margin:0}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-g .dn{font-size:.75rem;text-align:center;color:var(--mut);font-weight:600}
.cal-d{min-height:68px;border:1px solid var(--line);border-radius:8px;padding:4px;font-size:.75rem;overflow:hidden}.cal-d.o{background:#f6f8fc;opacity:.55}.cal-d.t{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}.cal-d i{display:block;font-style:normal;background:var(--blue);color:#fff;border-radius:4px;padding:0 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
@media(max-width:640px){.cal-d{min-height:48px;font-size:.65rem}.cal-d i{font-size:0;height:6px;padding:0}}
.ev{display:grid;grid-template-columns:78px 1fr;gap:16px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px}
.ev .dt{background:var(--navy);color:#fff;border-radius:10px;text-align:center;padding:8px 4px;align-self:start}.ev .dt b{font-size:1.6rem;display:block;line-height:1}.ev .dt span{font-size:.75rem;color:#9fb6dc}
.ev img.cv{border-radius:8px;margin:8px 0;max-height:220px;object-fit:cover}
.gal{columns:4 230px;column-gap:14px}.gal figure{margin:0 0 14px;break-inside:avoid;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);cursor:pointer;position:relative}.gal figure img{width:100%;transition:transform .3s}.gal figure:hover img{transform:scale(1.04)}.gal figure{overflow:hidden}.gal figcaption{padding:8px 12px;font-size:.85rem;font-weight:600}
.lb{position:fixed;inset:0;background:#030a17ee;z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;padding:20px;color:#fff}.lb.show,.modal.show{display:flex}.lb img{max-width:92vw;max-height:72vh;border-radius:8px}.lb .cap{max-width:720px;text-align:center;margin-top:12px}.lb button{position:absolute;background:#ffffff22;color:#fff;border:0;font-size:1.8rem;width:48px;height:48px;border-radius:50%;cursor:pointer}.lb .x{top:16px;right:16px}.lb .p{left:14px;top:50%}.lb .n{right:14px;top:50%}
.modal{position:fixed;inset:0;background:#030a17aa;z-index:100;display:none;align-items:flex-start;justify-content:center;padding:30px 14px;overflow:auto}.modal .box{background:#fff;border-radius:var(--r);max-width:760px;width:100%;padding:24px;position:relative}.modal .box .pre{white-space:pre-wrap}.modal .xx{position:absolute;top:10px;right:12px;background:none;border:0;font-size:1.6rem;cursor:pointer}
.lic{max-width:560px;margin-top:18px}.lic dl{display:grid;grid-template-columns:140px 1fr;gap:8px;margin:0}.lic dt{color:var(--mut)}.lic dd{margin:0;font-weight:600}
.notice{background:#e6eefc;border-left:4px solid var(--blue);padding:12px 16px;border-radius:8px;margin:14px 0}
footer{background:var(--navy);color:#b9cdef;padding:36px 0 18px;margin-top:40px}footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px}footer h4{color:#fff;margin:0 0 8px}footer a{color:#cfdcf3;display:block}footer img{width:90px;margin-bottom:8px}.copy{text-align:center;font-size:.8rem;margin-top:24px;opacity:.7}
@media(max-width:800px){footer .wrap{grid-template-columns:1fr}}
.loading{text-align:center;padding:30px;color:var(--mut)}

/* West Heaven-inspired blue visual refresh */
:root{--navy:#06152d;--navy2:#0b2852;--blue:#1769e8;--blue2:#48a2ff;--bg:#f3f7fd;--line:#d9e5f5;--r:16px}
body{background:linear-gradient(180deg,#f7faff 0%,#edf4fc 100%);overflow-x:hidden}
::selection{background:#3b82f6;color:#fff}
.top{background:rgba(5,19,42,.94);backdrop-filter:blur(18px);border-bottom:1px solid #ffffff14;box-shadow:0 10px 35px #06152d22}
.top .wrap{min-height:76px;gap:22px}
.brand img{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 0 12px #2684ff35);transition:transform .35s ease}
.brand:hover img{transform:rotate(-5deg) scale(1.06)}
.brand span{letter-spacing:.01em}.brand small{color:#a9c8f6;margin-top:2px}
nav{gap:4px}nav a{font-weight:600;transition:background .2s ease,color .2s ease,transform .2s ease}nav a:hover,nav a.on{background:linear-gradient(135deg,#1769e8,#2e8dff);box-shadow:0 5px 18px #1769e844;transform:translateY(-1px)}
.hero{position:relative;isolation:isolate;overflow:hidden;padding:88px 0 92px;background:radial-gradient(ellipse at 75% 40%,#1769e855 0,transparent 38%),radial-gradient(ellipse at 12% 0,#1c65bc66 0,transparent 45%),linear-gradient(125deg,#041126 0%,#092650 52%,#0a3970 100%)}
.hero:before,.hero:after{content:"";position:absolute;z-index:-1;border:1px solid #80baff22;border-radius:50%;width:620px;height:620px;right:-140px;top:-250px;animation:orbit 26s linear infinite}
.hero:after{width:470px;height:470px;right:-60px;top:-170px;border-color:#80baff18;animation-direction:reverse;animation-duration:34s}
.hero .wrap{grid-template-columns:1.35fr .8fr;gap:56px;position:relative}
.hero h1{font-size:clamp(2.4rem,5vw,4.25rem);letter-spacing:-.045em;line-height:1.05;max-width:750px;text-shadow:0 8px 35px #0003;animation:rise .7s both}
.hero p{color:#d3e5ff;font-size:clamp(1rem,1.4vw,1.18rem);max-width:620px;animation:rise .8s .08s both}
.motto{border-left:3px solid #58a7ff;color:#8fc4ff;text-transform:uppercase;letter-spacing:.15em;font-size:.76rem;font-weight:800;padding:3px 0 3px 13px;animation:rise .65s both}
.hero img.seal{width:min(360px,90%);filter:drop-shadow(0 20px 40px #0008);animation:float 5s ease-in-out infinite}
.btn{background:linear-gradient(135deg,#1769e8,#3295ff);border-radius:10px;box-shadow:0 8px 22px #1769e82a;transition:transform .2s,box-shadow .2s,filter .2s}
.btn:hover{background:linear-gradient(135deg,#0d56c6,#2485f5);transform:translateY(-2px);box-shadow:0 12px 28px #1769e84a}
.btn.sec{background:#e8f1ff;color:#12418b;box-shadow:none}.btn.sec:hover{background:#d6e7ff}
.quick{margin-top:-38px;z-index:2;gap:16px}.quick a{border-radius:16px;padding:20px;border-color:#e0eaf8;box-shadow:0 12px 35px #0b28521a;transition:transform .25s,border-color .25s,box-shadow .25s}.quick a:hover{transform:translateY(-6px);box-shadow:0 18px 38px #0b285226;border-color:#70aaff}
.quick .ic{background:linear-gradient(145deg,#e6f0ff,#cfe3ff);color:#1458b8;border-radius:13px;box-shadow:inset 0 0 0 1px #b6d3ff}
section.blk{padding:62px 0}section.blk.alt{background:linear-gradient(135deg,#e9f2ff,#f4f8fe);border-top:1px solid #dce9fb;border-bottom:1px solid #dce9fb}
.sh{margin-bottom:24px}.sh h2{font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.025em}.sh>a{font-weight:700;font-size:.92rem}
.card{border-color:#e0e9f6;border-radius:16px;box-shadow:0 4px 16px #0b28520a;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
a.card:hover,.card.hov:hover{transform:translateY(-6px);box-shadow:0 18px 40px #0b28521c;border-color:#b9d5ff}
.card .body{padding:20px}.card h3{letter-spacing:-.015em}.thumb{background:linear-gradient(135deg,#dbeaff,#edf5ff)}
.pagehead{position:relative;overflow:hidden;background:radial-gradient(ellipse at 90% 0,#2477d955,transparent 40%),linear-gradient(125deg,#06152d,#0c3265);padding:48px 0}.pagehead:after{content:"";position:absolute;width:260px;height:260px;border:1px solid #ffffff16;border-radius:50%;right:-50px;top:-130px;pointer-events:none}
.badge{background:#e6f0ff;color:#164c9c}.badge.ok{background:#dcfce7}.badge.warn{background:#fff3d3}.badge.bad{background:#fee2e2}
.form{border-radius:18px;border-color:#dfe9f7;box-shadow:0 12px 32px #0b28520b}
input,select,textarea{border-color:#c8d7ec;border-radius:10px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:0;box-shadow:0 0 0 4px #3b82f61c;border-color:#3989f8}
.ev{border-radius:16px;border-color:#dce7f6;box-shadow:0 5px 20px #0b28520b;transition:transform .2s,box-shadow .2s}.ev:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0b28521a}.ev .dt{background:linear-gradient(155deg,#0b2852,#1769e8)}
.gal figure{border-radius:15px;border-color:#dfe9f7;box-shadow:0 6px 20px #0b28520d;transition:transform .25s,box-shadow .25s}.gal figure:hover{transform:translateY(-4px);box-shadow:0 15px 32px #0b285226}.gal figure img{transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .3s}.gal figure:hover img{transform:scale(1.055);filter:saturate(1.12)}
footer{background:radial-gradient(ellipse at 85% 0,#1769e833,transparent 35%),linear-gradient(135deg,#041126,#092650);border-top:3px solid #277df1;margin-top:54px}footer .wrap{gap:44px}footer h4{letter-spacing:.04em}footer a{padding:3px 0;transition:color .2s,transform .2s}footer a:hover{color:#fff;text-decoration:none;transform:translateX(3px)}footer img{filter:drop-shadow(0 6px 14px #0004)}
.loading{padding:44px;color:#2862a6}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes orbit{to{transform:rotate(360deg)}}
@media(max-width:800px){.hero{padding:48px 0 64px}.hero .wrap{grid-template-columns:1fr;gap:22px}.hero img.seal{width:180px;order:-1}.hero h1{font-size:clamp(2.2rem,9vw,3.2rem)}.quick{margin-top:-25px}.top .wrap{min-height:68px}.brand img{width:42px;height:42px}section.blk{padding:44px 0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
