:root{color-scheme:light;--navy:#102f4b;--ink:#18344d;--muted:#627487;--line:#dce5ed;--bg:#f7f9fc;--white:#fff;--blue:#3474a8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--white);line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:3px solid #56a9d9;outline-offset:4px}.shell{width:min(1180px,calc(100% - 56px));margin:auto}.skip{position:absolute;left:-9999px;top:10px;z-index:20;background:#fff;padding:10px}.skip:focus{left:10px}.site-header{height:84px;position:sticky;top:0;z-index:10;background:rgba(255,255,255,.96);border-bottom:1px solid #e4ebf2;backdrop-filter:blur(14px)}.header-inner{height:100%;display:flex;justify-content:space-between;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:12px}.brand-symbol{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--navy);color:#fff}.brand-symbol svg{width:34px;height:34px}.brand strong{display:block;font-size:19px;letter-spacing:-.45px;line-height:1.2}.brand small{display:block;font-size:10px;letter-spacing:1.25px;text-transform:uppercase;color:#718597;margin-top:3px}.nav{height:100%;display:flex;align-items:center;gap:36px}.nav-link{position:relative;color:#66798b;font-weight:600;font-size:14px;height:100%;display:flex;align-items:center}.nav-link:hover,.nav-link.active{color:var(--navy)}.nav-link.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:3px;background:#3272a4}.menu-toggle{display:none}.hero{background:radial-gradient(ellipse at 78% 43%,#275379 0%,#173a59 34%,#102f4b 68%,#0c2943 100%);color:#fff;overflow:hidden}.hero-grid{min-height:400px;display:grid;grid-template-columns:1.25fr 1fr;align-items:center;gap:30px}.hero-content{padding:64px 0 72px;position:relative;z-index:2}.eyebrow{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:2.2px;font-weight:700;color:#a9d1ed}.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:#64cbb6;box-shadow:0 0 0 4px #64cbb622}.hero h1{font-size:clamp(38px,4.25vw,62px);line-height:1.12;letter-spacing:-2px;margin:19px 0 20px;font-weight:750}.hero h1 em{font-style:normal;color:#99cbe8}.hero p{font-size:15px;line-height:1.8;color:#d2e1ed;max-width:590px;margin:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{padding:12px 20px;border-radius:9px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:16px}.btn-primary{background:#fff;color:#143855}.btn-primary:hover{background:#eaf4fc}.btn-ghost{border:1px solid #7f9bb2;color:#fff}.btn-ghost:hover{background:#ffffff18}.hero-graphic{height:350px;position:relative;display:grid;place-items:center;opacity:.9}.orbit{border-radius:50%;position:absolute;border:1px solid #96bfda3a}.orbit-1{width:245px;height:245px}.orbit-2{width:345px;height:345px}.orbit:before,.orbit:after{content:'';position:absolute;border-radius:50%;width:5px;height:5px;background:#86c0e1}.orbit:before{top:14%;left:14%}.orbit:after{bottom:12%;right:15%}.center-mark{width:147px;height:147px;border-radius:30px;background:linear-gradient(135deg,#2e658e,#174061);border:1px solid #78acd055;box-shadow:0 20px 70px #0004;display:flex;flex-direction:column;justify-content:center;align-items:center}.center-mark span{font-size:49px;font-weight:750;letter-spacing:4px;line-height:1}.center-mark small{font-size:8px;letter-spacing:2.4px;margin-top:8px}.orbital-chip{position:absolute;background:#204967;border:1px solid #5f96bb70;padding:7px 12px;border-radius:8px;font-size:10px;font-weight:700;letter-spacing:1.1px;color:#cbe5f7}.chip-a{top:29px;left:36%}.chip-b{right:0;top:45%}.chip-c{bottom:33px;left:35%}.chip-d{left:0;top:48%}.section{padding-top:76px;padding-bottom:82px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:32px}.section-kicker{font-size:11px;letter-spacing:2px;font-weight:750;color:#3975a4}.section h2,.about-wrap h2{font-size:clamp(27px,3vw,35px);line-height:1.2;letter-spacing:-1px;margin:9px 0 9px}.section-head p,.about-wrap p{font-size:14px;color:var(--muted);margin:0}.count{background:#edf4f9;color:#496980;border:1px solid #dce9f2;border-radius:30px;padding:7px 13px;font-size:12px;font-weight:650;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.app-card{display:flex;flex-direction:column;min-height:260px;padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 4px 18px #1b3c5510;transition:transform .2s,box-shadow .2s,border-color .2s}.app-card:hover{transform:translateY(-3px);box-shadow:0 13px 32px #173b5418;border-color:#aac7dc}.card-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:15px}.app-icon{width:61px;height:61px;display:grid;place-items:center;border-radius:13px;background:var(--accent-bg);color:var(--accent)}.app-code{font-size:10px;font-weight:700;letter-spacing:1px;color:#91a0ac}.accent-blue{--accent:#376fa3;--accent-bg:#e7f0f9}.accent-green{--accent:#267c60;--accent-bg:#e2f3ea}.accent-purple{--accent:#785aa8;--accent-bg:#f0eafb}.accent-amber{--accent:#9a6d24;--accent-bg:#fff0d7}.card-category{text-transform:uppercase;font-size:10px;letter-spacing:1.25px;color:var(--accent);font-weight:750;margin:0 0 4px}.app-card h3{font-size:19px;letter-spacing:-.4px;line-height:1.35;margin:0 0 8px}.card-description{font-size:13px;color:var(--muted);margin:0;max-width:415px}.card-footer{border-top:1px solid #eaf0f4;margin-top:auto;padding-top:15px;margin-bottom:-6px;margin-top:24px;font-size:13px;font-weight:750}.launch{color:#235d8a}.launch:hover{text-decoration:underline}.unconfigured{color:#85939e;font-weight:550}.directory-footnote{font-size:12px;color:#7c8c99;margin:22px 0 0}.about-wrap{background:#f4f7fa;border-top:1px solid #e9eef3}.about-grid{padding-top:70px;padding-bottom:74px;display:grid;grid-template-columns:1fr 1.12fr;gap:90px}.about-grid p{max-width:470px;line-height:1.85}.principles{display:grid;gap:24px}.principles>div{display:flex;align-items:start;gap:16px}.principle-icon{flex:0 0 40px;height:40px;display:grid;place-items:center;background:#e2edf5;border-radius:10px;color:#31688f;font-size:12px;font-weight:750}.principles strong{display:block;font-size:14px;margin-bottom:3px}.principles small{display:block;font-size:13px;color:#718193;line-height:1.6}footer{background:#102f4b;color:#c7d8e4}.footer-inner{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}.footer-sep{padding:0 9px;color:#668ba6}@media(max-width:800px){.hero-grid{grid-template-columns:1fr}.hero-content{padding:58px 0 65px}.hero-graphic{display:none}.about-grid{gap:40px}.nav{gap:20px}}@media(max-width:640px){.shell{width:min(100% - 32px,1180px)}.site-header{height:72px}.brand-symbol{width:40px;height:40px}.brand strong{font-size:17px}.brand small{font-size:8px}.menu-toggle{width:42px;height:42px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;border-radius:8px}.menu-toggle span{width:19px;height:2px;background:var(--navy)}.nav{display:none;position:absolute;top:71px;left:0;right:0;background:#fff;box-shadow:0 14px 20px #152e451c;height:auto;padding:12px 18px 19px;flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav-link{padding:11px 8px}.nav-link.active:after{display:none}.hero h1{letter-spacing:-1.3px}.hero-content{padding:48px 0 57px}.section{padding:56px 0}.section-head{align-items:start}.count{font-size:10px}.cards{grid-template-columns:1fr;gap:14px}.app-card{min-height:235px;padding:22px}.about-grid{grid-template-columns:1fr;padding:55px 0;gap:35px}.footer-inner{flex-direction:column;align-items:start;justify-content:center;padding:22px 0;gap:4px}}
/* V2 — refinement, functional search and accessible interactions */
.app-card[hidden],.empty-state[hidden]{display:none!important}
.directory-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-5px 0 23px;flex-wrap:wrap}
.search-field{height:49px;display:flex;align-items:center;gap:11px;color:#758da2;border:1px solid #cedce7;background:#fff;padding:0 15px;border-radius:11px;width:min(415px,100%);transition:border-color .2s,box-shadow .2s}
.search-field:focus-within{border-color:#4186b4;box-shadow:0 0 0 4px #4186b41e}
.search-field input{border:0;outline:0;background:transparent;min-width:0;width:100%;height:100%;color:#17364f;font:inherit;font-size:14px}
.search-field input::placeholder{color:#8293a2}
.search-help{font-size:12px;color:#8293a2}
.empty-state{text-align:center;padding:48px 15px;background:#f5f8fb;border:1px dashed #cbdbe7;border-radius:14px}
.empty-state strong{font-size:17px}.empty-state p{color:#627487;font-size:13px;margin:6px 0 16px}
.empty-state button{font:inherit;background:#163d5f;color:white;border:0;border-radius:8px;padding:9px 15px;cursor:pointer}
.version{color:#8fb2ca;margin-left:12px}
.app-card{position:relative;overflow:hidden}
.app-card:before{content:"";position:absolute;left:0;top:0;width:4px;height:0;background:var(--accent);transition:height .2s}
.app-card:hover:before,.app-card:focus-within:before{height:100%}
.app-card:focus-within{border-color:#9bbdd7;box-shadow:0 9px 28px #173b5418}
.launch{display:inline-flex;gap:5px;align-items:center;text-underline-offset:4px}
.launch span{transition:transform .18s}.launch:hover span{transform:translate(2px,-2px)}
@media(max-width:640px){.directory-tools{align-items:stretch;margin:0 0 20px}.search-field{width:100%}.search-help{display:none}.app-card:hover{transform:none}.version{margin-left:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* V3 — lightweight AIS resource directory */
.resources-wrap{background:#f6f9fc;border-top:1px solid #e4ecf2}
.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.resource-card{display:flex;align-items:flex-start;gap:17px;padding:22px 21px;border:1px solid #dbe6ee;border-radius:14px;background:white;box-shadow:0 3px 14px #14365309;min-width:0;transition:border-color .2s,box-shadow .2s}
.resource-card:hover,.resource-card:focus-within{border-color:#a9c3d7;box-shadow:0 8px 24px #173b5412}
.resource-icon{display:grid;place-items:center;flex:0 0 50px;height:50px;border-radius:11px;background:#e8f1f8;color:#2b6793}
.resource-icon svg{width:26px;height:26px}
.resource-content{flex:1;min-width:0}.resource-category{display:block;text-transform:uppercase;letter-spacing:1px;color:#618199;font-size:10px;font-weight:750;margin-bottom:4px}
.resource-content h3{font-size:16px;line-height:1.3;margin:0 0 5px}.resource-content p{font-size:12px;line-height:1.6;color:#677d90;margin:0}
.resource-action{flex:0 0 auto;font-size:12px;font-weight:700;padding-top:3px}.resource-open{color:#235d8a;white-space:nowrap}.resource-open:hover{text-decoration:underline}.resource-pending{color:#8b98a3;font-weight:500;font-size:11px}
@media(max-width:850px){.resource-grid{grid-template-columns:1fr}}
@media(max-width:450px){.resource-card{flex-wrap:wrap;gap:10px;padding:18px}.resource-action{flex-basis:100%;padding-left:60px}}

/* V4 — scalable resource discovery */
.resource-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin:-4px 0 23px}
.resource-filters{display:flex;flex-wrap:wrap;gap:8px}
.resource-filter{border:1px solid #ccdae6;border-radius:999px;background:white;padding:9px 14px;font:600 12px Inter,"Segoe UI",Arial,sans-serif;color:#536d82;cursor:pointer;transition:background .16s,border-color .16s}
.resource-filter:hover{border-color:#80a8c5;background:#f1f7fb}
.resource-filter[aria-pressed="true"]{background:#173e60;color:white;border-color:#173e60}
.resource-card[hidden]{display:none!important}
.resource-featured{border-color:#bfd5e6;background:linear-gradient(140deg,#ffffff,#f8fbfe)}
.resource-open:focus-visible,.resource-filter:focus-visible{outline:3px solid #56a9d9;outline-offset:3px}
@media(max-width:640px){.resource-toolbar{align-items:stretch}.resource-toolbar .search-field{width:100%}.resource-filters{gap:7px}.resource-filter{padding:8px 12px}}
