:root{
    --bg:#09141d;
    --ink:#f5f8fb;
    --muted:rgba(231,237,243,.82);
    --line:rgba(255,255,255,.14);
    --card:rgba(255,255,255,.14);
    --card-strong:rgba(255,255,255,.2);
    --accent:#dceaf6;
    --accent2:#7db0d2;
    --shadow:0 20px 60px rgba(5,17,27,.26);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ink);
    min-height:100vh;
    overflow-x:hidden;
    background:#0d1721;
    position:relative;
}
body::before{
    content:"";
    position:fixed;
    inset:0;
    background:
        linear-gradient(180deg,rgba(7,19,29,.46) 0%,rgba(8,18,28,.56) 48%,rgba(6,16,25,.66) 100%),
        url('../images/portal-background.png') center center / cover no-repeat;
    z-index:-3;
    transform:scale(1.02);
}
body::after{
    content:"";
    position:fixed;
    inset:0;
    background:
        radial-gradient(circle at 15% 15%, rgba(255,255,255,.18), transparent 26%),
        radial-gradient(circle at 85% 18%, rgba(145,184,211,.16), transparent 24%),
        linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,0));
    z-index:-2;
    pointer-events:none;
}

main,
header,
footer{position:relative;z-index:1}

.wrap{width:min(1220px,calc(100% - 44px));margin:auto}
.page-glow{
    position:fixed;
    border-radius:999px;
    filter:blur(10px);
    opacity:.42;
    pointer-events:none;
    z-index:-1;
}
.glow-one{
    width:560px;
    height:560px;
    background:radial-gradient(circle,rgba(185,215,235,.18),transparent 68%);
    right:-180px;
    top:-220px;
}
.glow-two{
    width:500px;
    height:500px;
    background:radial-gradient(circle,rgba(90,126,149,.22),transparent 68%);
    left:-220px;
    bottom:-220px;
}

.site-header{
    height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid rgba(255,255,255,.11);
}
.site-brand{
    display:flex;
    align-items:center;
    gap:13px;
    color:inherit;
    text-decoration:none;
}
.site-brand>span:last-child{display:flex;flex-direction:column;line-height:1.15}
.site-brand strong{font-size:15px;letter-spacing:.01em}
.site-brand small{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.16em;
    color:rgba(240,245,250,.76);
    margin-top:5px;
}
.logo-box{
    width:41px;
    height:41px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:rgba(255,255,255,.18);
    color:#fff;
    font-weight:800;
    font-size:13px;
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 10px 30px rgba(8,20,31,.24);
    backdrop-filter:blur(12px);
}
.admin-link{
    font-size:13px;
    font-weight:650;
    color:#fff;
    text-decoration:none;
    padding:10px 14px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:999px;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(12px);
    transition:.24s ease;
}
.admin-link span{display:inline-block;margin-left:4px;transition:.2s}
.admin-link:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.26)}
.admin-link:hover span{transform:translate(2px,-2px)}

.hero{padding:92px 0 54px}
.eyebrow{
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.18em;
    color:rgba(236,242,248,.88);
    font-weight:700;
    display:flex;
    align-items:center;
    gap:10px;
}
.eyebrow span{width:24px;height:1px;background:rgba(255,255,255,.62)}
.hero h1{
    max-width:900px;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(45px,6vw,79px);
    font-weight:500;
    line-height:1.01;
    letter-spacing:-.045em;
    margin:24px 0 25px;
    text-shadow:0 18px 34px rgba(10,18,28,.16);
}
.hero p{
    font-size:18px;
    line-height:1.75;
    color:var(--muted);
    max-width:760px;
    margin:0;
}
.hero-meta{
    display:flex;
    align-items:center;
    gap:14px;
    margin-top:34px;
    font-size:12px;
    color:rgba(239,245,249,.72);
    text-transform:uppercase;
    letter-spacing:.08em;
}
.hero-meta i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.58)}

.portal-section{padding:28px 0 88px}
.tile-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.portal-tile{
    position:relative;
    grid-column:span 4;
    min-height:285px;
    padding:28px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    text-decoration:none;
    color:inherit;
    border:1px solid rgba(255,255,255,.16);
    background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.11));
    backdrop-filter:blur(18px);
    border-radius:20px;
    box-shadow:var(--shadow);
    overflow:hidden;
    transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease,background .28s ease;
}
.portal-tile.size-wide{grid-column:span 8}
.portal-tile.size-large{grid-column:span 6;min-height:360px}
.portal-tile:hover{
    transform:translateY(-5px);
    box-shadow:0 28px 75px rgba(5,17,27,.33);
    border-color:rgba(208,228,245,.3);
    background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.12));
}
.portal-tile::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(135deg, rgba(255,255,255,.09), transparent 42%, rgba(255,255,255,.04) 100%);
    z-index:0;
    pointer-events:none;
}
.portal-tile.has-image:before{
    content:"";
    position:absolute;
    inset:0;
    background-image:linear-gradient(180deg,rgba(8,24,36,.18),rgba(8,24,36,.78)),var(--tile-image);
    background-size:cover;
    background-position:center;
    z-index:0;
    transition:transform .45s;
}
.portal-tile.has-image:hover:before{transform:scale(1.025)}
.portal-tile.has-image{color:#fff}
.portal-tile.has-image .tile-copy p,.portal-tile.has-image .category{color:rgba(255,255,255,.76)}
.tile-top,.tile-copy,.tile-arrow{position:relative;z-index:1}
.tile-top{display:flex;align-items:center;justify-content:space-between}
.tile-icon{
    width:48px;
    height:48px;
    border-radius:14px;
    border:1px solid rgba(255,255,255,.18);
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.16);
    font-size:19px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}
.has-image .tile-icon{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2)}
.badge{
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.12em;
    border:1px solid rgba(255,255,255,.18);
    border-radius:99px;
    padding:7px 9px;
    background:rgba(255,255,255,.12);
    color:#fff;
}
.has-image .badge{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.12)}
.tile-copy{margin-top:54px}
.category{
    display:block;
    color:rgba(239,244,248,.78);
    text-transform:uppercase;
    font-size:10px;
    letter-spacing:.14em;
    font-weight:800;
    margin-bottom:10px;
}
.tile-copy h2{font-size:25px;line-height:1.15;letter-spacing:-.025em;margin:0 0 12px}
.tile-copy p{font-size:14px;line-height:1.65;color:var(--muted);margin:0;max-width:440px}
.tile-arrow{position:absolute;right:27px;bottom:25px;font-size:22px;transition:.2s}
.portal-tile:hover .tile-arrow{transform:translateX(4px)}
.site-footer{
    border-top:1px solid rgba(255,255,255,.12);
    padding:26px 0 36px;
    display:flex;
    justify-content:space-between;
    color:rgba(239,244,248,.78);
    font-size:12px;
}
.empty-state{
    padding:50px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:20px;
    background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.11));
    backdrop-filter:blur(18px);
    box-shadow:var(--shadow);
}
.empty-state h2{margin-top:0}
.empty-state p{color:var(--muted)}
.empty-state a{color:#fff;font-weight:700}

@media(max-width:900px){
    .portal-tile,.portal-tile.size-wide,.portal-tile.size-large{grid-column:span 6}
    .hero{padding-top:70px}
    .hero h1{font-size:clamp(44px,10vw,68px)}
}

@media(max-width:640px){
    .wrap{width:min(100% - 28px,1220px)}
    .site-header{height:76px}
    .admin-link{font-size:0;padding:10px 12px}
    .admin-link span{font-size:18px;margin:0}
    .hero{padding:58px 0 36px}
    .hero h1{font-size:43px}
    .hero p{font-size:16px}
    .hero-meta{flex-wrap:wrap}
    .portal-section{padding-top:12px}
    .tile-grid{gap:13px}
    .portal-tile,.portal-tile.size-wide,.portal-tile.size-large{grid-column:1/-1;min-height:260px;padding:23px}
    .tile-copy{margin-top:45px}
    .site-footer{gap:20px;flex-direction:column}
}
