.topbar{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:22px clamp(20px,5vw,48px);pointer-events:none}.topbar>*{pointer-events:auto}.topbar__name,.topbar__back{transition:opacity .5s cubic-bezier(.16,1,.3,1),filter .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1);opacity:0;filter:blur(8px);transform:translateY(-12px)}.topbar__name.shown,.topbar__back.shown{opacity:1;filter:blur(0);transform:translateY(0)}.topbar__name{font-weight:500;font-size:.95rem;letter-spacing:.01em;color:#4d5570;text-decoration:none}.topbar__back{display:inline-flex;align-items:center;gap:8px;background:#ffffff80;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border:1px solid rgba(255,255,255,.65);color:#23283a;text-decoration:none;font-weight:500;font-size:.9rem;padding:10px 18px;border-radius:999px;box-shadow:0 12px 28px -16px #3c5ab44d}.topbar__back:hover{transform:translateY(-2px);box-shadow:0 16px 32px -16px #3c5ab466}.scroll-pill{position:fixed;top:20px;left:50%;z-index:10;display:inline-flex;align-items:center;background:#ffffff8c;backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.7);color:#23283a;font-weight:500;font-size:.95rem;padding:11px 24px;border-radius:999px;box-shadow:0 16px 36px -18px #3c5ab466;opacity:0;filter:blur(12px);transform:translate(-50%,-14px) scale(.9);transition:opacity .6s cubic-bezier(.34,1.4,.64,1),filter .6s cubic-bezier(.34,1.4,.64,1),transform .6s cubic-bezier(.34,1.4,.64,1);pointer-events:none}.scroll-pill.shown{opacity:1;filter:blur(0);transform:translate(-50%) scale(1)}.hero{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:20vh 28px 6vh;text-align:center}.hero__title{font-weight:500;font-size:clamp(2.4rem,6vw,4rem);letter-spacing:-.02em;line-height:1.1;margin:0 0 20px;transition:opacity 1.9s cubic-bezier(.16,1,.3,1),filter 1.9s cubic-bezier(.16,1,.3,1),transform 1.9s cubic-bezier(.16,1,.3,1)}.hero__subtitle{font-weight:400;font-size:clamp(1.05rem,2vw,1.25rem);color:#565f78;margin:0;transition:opacity 1.9s cubic-bezier(.16,1,.3,1) .25s,filter 1.9s cubic-bezier(.16,1,.3,1) .25s,transform 1.9s cubic-bezier(.16,1,.3,1) .25s}.controls{position:relative;z-index:2;max-width:900px;margin:0 auto;padding:4vh 28px 2vh;display:flex;flex-direction:column;align-items:center;gap:26px;transition:opacity 1.9s cubic-bezier(.16,1,.3,1) .5s,filter 1.9s cubic-bezier(.16,1,.3,1) .5s,transform 1.9s cubic-bezier(.16,1,.3,1) .5s}.search{width:100%;max-width:480px;display:flex;align-items:center;gap:12px;background:#fff6;backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:1px solid rgba(255,255,255,.65);box-shadow:0 18px 44px -26px #3c5ab459;border-radius:999px;padding:16px 24px;transition:box-shadow .35s ease,transform .35s cubic-bezier(.16,1,.3,1)}.search:focus-within{box-shadow:0 18px 44px -22px #3c5ab480,0 0 0 4px #6f8ee92e;transform:translateY(-1px)}.search svg{flex:0 0 auto;opacity:.55;transition:opacity .3s ease,transform .3s ease}.search:focus-within svg{opacity:.85;transform:scale(1.06)}.search input{flex:1;border:none;background:none;outline:none;font-family:inherit;font-weight:500;font-size:1.02rem;color:#23283a}.search input::placeholder{color:#8891a8}.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.filter-pill{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-weight:500;font-size:.92rem;letter-spacing:.005em;color:#23283a;background:#ffffff6b;backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border:1px solid rgba(255,255,255,.65);padding:10px 20px;border-radius:999px;cursor:pointer;transition:transform .3s cubic-bezier(.16,1,.3,1),background .3s ease,color .3s ease,box-shadow .3s ease}.filter-pill svg{flex:0 0 auto;transition:transform .3s cubic-bezier(.34,1.6,.64,1)}.filter-pill:hover{transform:translateY(-1px)}.filter-pill:active{transform:scale(.94)}.filter-pill.active{color:#f4f6fb;box-shadow:0 14px 30px -16px #23283a66}.filter-pill.active svg{stroke:#f4f6fb;animation:iconPop .45s cubic-bezier(.34,1.6,.64,1)}@keyframes iconPop{0%{transform:scale(.6) rotate(-8deg)}60%{transform:scale(1.2) rotate(4deg)}to{transform:scale(1) rotate(0)}}.grid-wrap{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:6vh 28px 16vh}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px;align-items:start}.app-tile{position:relative;border-radius:28px;padding:28px 26px 24px;display:flex;flex-direction:column;gap:14px;border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:0 22px 48px -30px #3c5ab447;cursor:pointer;transition:opacity .5s cubic-bezier(.16,1,.3,1),filter .5s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease,border-color .4s ease}.app-tile:hover{transform:translateY(-7px) scale(1.015);border-color:color-mix(in srgb,var(--cat-color, #6f8ee9) 50%,rgba(255,255,255,.6));box-shadow:0 36px 70px -30px color-mix(in srgb,var(--cat-color, #6f8ee9) 40%,rgba(60,90,180,.4)),0 0 0 1px color-mix(in srgb,var(--cat-color, #6f8ee9) 16%,transparent) inset}.app-tile:active{transform:translateY(-3px) scale(.995)}.app-tile:focus-visible{outline:2px solid var(--cat-color, #6f8ee9);outline-offset:3px}.app-tile:hover .app-tile__tag{background:color-mix(in srgb,var(--cat-color, #6f8ee9) 20%,rgba(255,255,255,.5))}.app-tile:hover .app-tile__title{color:color-mix(in srgb,var(--cat-color, #6f8ee9) 55%,#1d2133)}.app-tile.hidden-tile{display:none}.app-tile.leaving{opacity:0!important;filter:blur(10px)!important;transform:scale(.93)!important;pointer-events:none!important}.app-tile__tag{align-self:flex-start;font-weight:600;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--cat-color, #4d5570);background:#ffffff80;padding:5px 12px;border-radius:999px;transition:background .35s ease}.app-tile__title{font-weight:600;font-size:1.26rem;letter-spacing:-.01em;line-height:1.3;color:#1d2133;transition:color .35s ease}.app-tile__desc{font-weight:400;font-size:.94rem;line-height:1.55;color:#4a536c;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.app-tile__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.app-tile__btn{font-family:inherit;font-weight:500;font-size:.82rem;padding:8px 16px;border-radius:999px;text-decoration:none;cursor:pointer;text-align:center;background:#fff6;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);border:1px solid rgba(255,255,255,.65);color:#23283a;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.app-tile__btn:hover{transform:translateY(-2px);background:#ffffffa6;box-shadow:0 10px 22px -14px #3c5ab466}.app-tile__btn:active{transform:scale(.93)}.app-tile__btn svg{transition:transform .3s ease;margin-left:4px;vertical-align:-2px}.app-tile__btn:hover svg{transform:translate(3px)}.app-tile__btn--primary{background:color-mix(in srgb,var(--cat-color, #6f8ee9) 22%,rgba(255,255,255,.5));border-color:color-mix(in srgb,var(--cat-color, #6f8ee9) 40%,transparent);color:#1d2133}.empty-state{text-align:center;padding:12vh 24px;font-weight:500;font-size:1.3rem;color:#565f78;opacity:0;transition:opacity .4s ease}.empty-state.visible{opacity:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#14182647;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .4s cubic-bezier(.16,1,.3,1)}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-panel{width:min(560px,100%);max-height:82vh;overflow-y:auto;background:#ffffffb8;backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%);border:1px solid rgba(255,255,255,.75);border-radius:32px;padding:40px 36px;box-shadow:0 40px 90px -30px #1e285066;opacity:0;transform:translateY(24px) scale(.96);filter:blur(10px);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1),filter .45s cubic-bezier(.16,1,.3,1)}.modal-overlay.open .modal-panel{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.modal-tag{display:inline-block;font-weight:600;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--cat-color, #4d5570);background:#fff9;padding:5px 12px;border-radius:999px;margin-bottom:16px}.modal-title{font-weight:600;font-size:1.7rem;letter-spacing:-.015em;margin:0 0 16px;color:#1d2133}.modal-date{margin:-8px 0 16px;font-size:.84rem;font-weight:500;color:#8891a8}.modal-desc{font-size:1rem;line-height:1.65;color:#414a63;margin:0 0 20px;white-space:pre-line}.modal-highlights{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:10px}.modal-highlights li{font-size:.95rem;color:#2d334a;padding-left:20px;position:relative;opacity:0;transform:translate(-10px);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1)}.modal-overlay.open .modal-highlights li{opacity:1;transform:translate(0)}.modal-highlights li:before{content:"—";position:absolute;left:0;color:var(--cat-color, #9aa6c4)}.modal-actions{display:flex;gap:12px;flex-wrap:wrap;opacity:0;transform:translateY(8px);transition:opacity .5s cubic-bezier(.16,1,.3,1) .15s,transform .5s cubic-bezier(.16,1,.3,1) .15s}.modal-overlay.open .modal-actions{opacity:1;transform:translateY(0)}.modal-btn{font-family:inherit;font-weight:500;font-size:.92rem;padding:12px 22px;border-radius:999px;text-decoration:none;border:1px solid rgba(35,40,58,.15);cursor:pointer;background:#ffffff80;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);color:#23283a;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.modal-btn--primary{background:color-mix(in srgb,var(--cat-color, #6f8ee9) 24%,rgba(255,255,255,.5))}.modal-btn:hover{transform:translateY(-2px);background:#fffc}.modal-btn:active{transform:scale(.95)}.modal-close{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff9;border:1px solid rgba(255,255,255,.7);cursor:pointer;transition:background .25s ease,transform .25s ease}.modal-close:hover{background:#ffffffe6;transform:rotate(90deg)}
