:root{color-scheme:dark;--ink:#faf4ff;--muted:#e8d8ff;--glass:rgba(24,17,52,.54);--glass-dark:rgba(23,13,48,.83);--edge:rgba(230,204,255,.43);--violet:#bb90ff;--pink:#facdff;--shadow:0 12px 42px rgba(16,7,45,.34);font-family:"Be Vietnam Pro",system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background:#1c1c46}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #f9d9ff;outline-offset:3px}::selection{background:#8f61cf}
.background-world,.background-shade{position:fixed;inset:0;pointer-events:none}.background-world{z-index:0;background-image:url("assets/frieren-background.webp");background-position:center 35%;background-size:cover;filter:saturate(1.12)}.background-shade{z-index:1;background:linear-gradient(90deg,rgba(20,13,49,.58),rgba(18,12,58,.12) 56%,rgba(22,13,55,.22)),linear-gradient(180deg,rgba(16,13,55,.18) 0%,rgba(22,14,55,.08) 32%,rgba(17,10,44,.68) 65%,#140e31 95%)}.petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:2}.petal{position:absolute;top:-8vh;border-radius:80% 0 80% 0;background:linear-gradient(135deg,#fff3ff,#f4b9ff 52%,#ad83fa);opacity:.72;animation:petalfall linear infinite;filter:drop-shadow(0 0 7px #ce9eff)}@keyframes petalfall{0%{transform:translate3d(0,-15vh,0) rotate(0)}100%{transform:translate3d(170px,114vh,0) rotate(560deg)}}.app-shell{width:min(1500px,calc(100% - 72px));margin:18px auto 0;position:relative;z-index:3}.glass{background:var(--glass);border:1px solid var(--edge);box-shadow:var(--shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.topbar{min-height:77px;border-radius:24px;display:flex;align-items:center;gap:24px;padding:12px 22px;position:sticky;top:12px;z-index:15}.brand{display:flex;align-items:center;gap:12px;min-width:220px;white-space:nowrap}.brand-flower{color:#f3ddff;font-size:44px;text-shadow:0 0 12px #b478ff;line-height:1}.brand-name{display:block;font-family:"Great Vibes",cursive;font-size:43px;line-height:.87;text-shadow:0 0 17px #c48bff}.brand-note{display:block;letter-spacing:1.7px;font-size:9px;margin-top:8px;color:#f2d9ff}.topnav,.header-actions{display:flex;gap:5px;align-items:center}.topnav{margin:auto}.nav-link,.header-btn{padding:12px 13px;border-radius:15px;font-size:12px;white-space:nowrap;font-weight:700;transition:.2s;background:transparent;border:1px solid transparent;color:#f1e7ff}.nav-link:hover,.header-btn:hover{background:#ffffff20}.nav-link.selected{background:linear-gradient(135deg,#b38bf39f,#c689ee7d);border-color:#e9c8ff6b;box-shadow:0 0 22px #c19cff88}.header-actions{margin-left:auto}.header-btn{border-color:#e1c4ff50;background:#22174066}.header-btn b{font-size:10px;margin-left:3px}.login-btn{background:#9566ef63;border-color:#e8bfff}.header-btn[hidden]{display:none}
.hero{min-height:490px;padding:80px 26px 80px;display:flex;align-items:center;justify-content:space-between;position:relative}.hero-copy{max-width:540px}.eyebrow{letter-spacing:2.5px;font-size:11px;font-weight:800;color:#fbe9ff;text-shadow:0 2px 10px #28124f}.tiny-star{color:#ffd4f5}.hero-title{font-family:"Great Vibes",cursive;font-weight:400;font-size:clamp(100px,13vw,166px);line-height:.9;margin:27px 0 0;color:#fff8ff;text-shadow:0 0 12px #b887ff,0 0 40px #a16fff,0 5px 1px #512e9a}.title-spark{font-family:serif;font-size:45px;vertical-align:top;margin-left:4px}.hero-subtitle{color:#fff0fd;font-family:Georgia,serif;letter-spacing:2px;font-size:18px;margin:17px 0 16px}.hero-description{font-size:14px;font-weight:500;line-height:1.9;max-width:520px;text-shadow:0 2px 8px #251148}.hero-actions{display:flex;gap:13px;align-items:center;margin-top:25px}.primary-btn,.ghost-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:16px;padding:12px 22px;font-weight:800;border:1px solid #f4d9ffb5;transition:transform .2s,box-shadow .2s;color:white}.primary-btn{background:linear-gradient(135deg,#c299ff,#874bd9 62%,#6e3fae);box-shadow:0 0 15px #af75f9aa,inset 0 0 8px #ffffff55}.primary-btn:hover,.ghost-btn:hover{transform:translateY(-2px);box-shadow:0 0 25px #caa6ffb0}.ghost-btn{background:#23174973}.full-btn{width:100%}.hero-mark{align-self:flex-end;text-align:right;font-size:21px;font-family:Georgia,serif;font-style:italic;color:#ffecff;text-shadow:0 0 12px #a26ae9}.hero-mark span{display:block;font-size:60px;color:#e7caff}.hero-mark small{display:block;font:700 10px "Be Vietnam Pro",sans-serif;letter-spacing:3px;margin-top:8px}.notification{border-radius:24px;display:flex;gap:16px;align-items:center;padding:20px 25px;margin-bottom:20px}.notice-icon{font-size:30px;color:#ebcbff}.notification strong{font-size:14px}.notification p{font-size:12px;color:#f0e2ff;margin:7px 0 0}.mini-share{margin-left:auto;white-space:nowrap;color:white;background:#ffffff19;border:1px solid #ffffff51;border-radius:12px;padding:10px 15px}
.directory{border-radius:28px;padding:28px 32px;margin-bottom:38px;scroll-margin-top:118px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px}.kicker{font-size:10px;font-weight:800;color:#eacbff;letter-spacing:2.6px}.section-heading h2,.catalog-heading h2{font-size:27px;letter-spacing:-1px;margin:6px 0 7px}.section-heading p{margin:0;color:#ecdbff;font-size:12px}.search-frame{display:flex;align-items:center;gap:7px;background:#1b143b80;border:1px solid #debbff72;border-radius:16px;padding:12px 15px;min-width:285px}.search-frame span{font-size:22px}.search-frame input{width:100%;color:white;background:transparent;border:0;outline:0;font-size:12px}.search-frame input::placeholder{color:#d4c2ed}.directory-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.directory-chip{border-radius:14px;padding:12px 17px;display:inline-flex;align-items:center;gap:9px;background:linear-gradient(120deg,#b390e83d,#5b3d8d52);border:1px solid #e9caff63;transition:.2s;font-weight:800;font-size:12px}.directory-chip:hover{border-color:#fff;transform:translateY(-2px);background:#ab7bea75}.directory-chip b{color:#e4c1ff}.catalog{scroll-margin-top:108px}.catalog-heading{display:flex;justify-content:space-between;align-items:center;padding:0 9px 10px}.catalog-heading h2{margin-top:6px}.catalog-heading h2 span{color:#d7a5ff}.catalog-meta{font-size:12px;font-weight:600;color:#e4d0fa}.category-group{margin:20px 0 36px;scroll-margin-top:116px}.category-banner{display:flex;align-items:center;gap:13px;margin-bottom:16px}.category-glyph{width:50px;height:50px;display:grid;place-items:center;border-radius:17px;border:1px solid #f5e1ff9c;background:#7e4ebfa8;color:#ffeaff;font-size:25px;box-shadow:0 0 20px #a26bed80}.category-banner h3{margin:0;font-size:22px}.category-banner p{margin:5px 0 0;color:#ebdbff;font-size:12px}.category-count{margin-left:auto;font-weight:800;font-size:12px;color:#ecd7ff}.content-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.resource-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:22px;border:1px solid #e1bfff8a;background:#211741bc;box-shadow:0 10px 27px #1c0e3880;backdrop-filter:blur(18px);transition:transform .22s,border-color .22s}.resource-card:hover{transform:translateY(-5px);border-color:#fff}.resource-art{height:162px;position:relative;overflow:hidden;background:linear-gradient(120deg,#4e2e85,#bb87d9 55%,#7d77d9);display:flex;align-items:center;justify-content:center}.resource-art img{width:100%;height:100%;object-fit:cover;display:block}.resource-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,#1d1438bb)}.art-fallback{font-family:Georgia,serif;font-size:65px;opacity:.75;color:#f2d8ff;text-shadow:0 0 20px #feeaff}.favorite-toggle{position:absolute;z-index:1;right:14px;top:14px;border:1px solid #fff9;border-radius:14px;font-size:26px;width:40px;height:40px;line-height:1;background:#1e133db3;color:white;backdrop-filter:blur(8px)}.favorite-toggle.on{color:#ffda7c;background:#55406a}.resource-body{padding:17px 18px 19px;display:flex;flex-direction:column;gap:10px;flex:1}.resource-title{font-weight:800;font-size:16px;margin:0;line-height:1.45}.resource-desc{font-size:12px;line-height:1.75;color:#e5d8f5;margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;min-height:40px}.resource-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.resource-btn{background:#ab80e537;border:1px solid #cfb2ff94;color:#fff;border-radius:12px;padding:9px 11px;font-size:11px;font-weight:800}.resource-btn:hover{background:#ac7ce870}.resource-btn.primary{background:#ad70e99c}.empty-group{background:#25184485;border:1px dashed #dcc6ff8c;border-radius:15px;padding:22px;text-align:center;color:#e7d5ff}.empty-state{border-radius:24px;text-align:center;padding:30px}.empty-state span{font-size:40px}.empty-state h3{font-size:20px}.empty-state p{color:#e4d3f5}.footer{padding:22px 28px;border-radius:22px 22px 0 0;margin:42px 0 0;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:11px}.footer-brand{font-size:17px}.footer-brand i{font-family:"Great Vibes",cursive;font-size:28px}.footer-brand span,.footer p{color:#dec9fa}.footer button{background:#ffffff19;border:1px solid #fff5;color:white;border-radius:9px;padding:9px 12px}
.modal-dialog{width:min(560px,calc(100vw - 26px));max-height:min(89vh,1000px);overflow:auto;margin:auto;border:1px solid #e2bfffaa;border-radius:25px;padding:24px;background:linear-gradient(145deg,#29204f,#19132e 82%);color:#fff;box-shadow:0 15px 85px #0d0723;scrollbar-color:#8c5fc4 transparent}.modal-dialog::backdrop{background:#110924be;backdrop-filter:blur(8px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:18px;margin-bottom:16px}.close-modal{color:white;border:1px solid #e7c4ff72;background:#ffffff1c;border-radius:12px;width:36px;height:36px;font-size:26px}.dialog-hint{font-size:12px;color:#e8d8fa;line-height:1.75}.auth-tabs,.admin-tabs{display:flex;flex-wrap:wrap;gap:7px;padding:5px;border-radius:15px;background:#0c09265c;margin:10px 0 15px}.auth-tabs button,.admin-tabs button{flex:1;border:0;border-radius:12px;background:transparent;color:#e8d8ff;font-size:11px;font-weight:800;padding:12px 10px}.auth-tabs button.active,.admin-tabs button.active{background:#8763cf;color:white}.stack-form{display:flex;flex-direction:column;gap:13px;margin-top:16px}.stack-form label,.share-label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#eddcff;font-weight:700}.stack-form input,.stack-form textarea,.stack-form select,.share-label input{border:1px solid #ae91d776;border-radius:12px;padding:11px 13px;background:#130e2caa;color:white;width:100%;outline-color:#cd9cff}.stack-form select option{color:#111}.stack-form input[type=file]{font-size:11px}.linklike,.guest-btn{display:block;background:transparent;color:#f7d5ff;border:0;padding:9px;margin:10px auto 0;font-size:12px;text-decoration:underline}.guest-btn{color:#d4c7f3;text-decoration:none}.backend-notice{background:#fbdbff18;border:1px solid #f1b9ff59;padding:12px;border-radius:12px;font-size:12px;line-height:1.7;margin-top:12px}.form-error{color:#ffb3ce;font-size:12px;margin:0}.admin-dialog{width:min(1100px,calc(100vw - 30px))}.admin-tabs button{flex:unset}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-subpanel{border:1px solid #f5dfff3a;background:#ffffff09;border-radius:16px;padding:17px;min-width:0}.admin-subpanel h3{margin:0;font-size:16px}.small-note{font-size:11px;line-height:1.7;color:#e3d4f4}.admin-row-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.admin-row{display:flex;align-items:center;gap:7px;justify-content:space-between;padding:11px;border-radius:12px;border:1px solid #f6e7ff3c;background:#ffffff0b}.admin-row .label{flex:1;min-width:0;overflow-wrap:anywhere;font-size:12px}.admin-row button{font-size:11px;padding:7px 10px;background:#b08ee32b;border:1px solid #e6c6ff5c;border-radius:8px;color:white}.admin-row button.danger{background:#a23b6450}.admin-status{min-height:16px;font-size:12px;color:#e5d5ff}.share-label{margin:14px 0}.favorite-list{display:flex;flex-direction:column;gap:9px}.favorite-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:#f1e9ff12;border:1px solid #d9b9ff5a;border-radius:15px}.favorite-line strong{font-size:13px}.favorite-line small{display:block;font-size:11px;margin-top:5px;color:#e6d5ff}.favorite-line button{border:1px solid #e8cbff99;background:#9e74db73;color:white;border-radius:11px;padding:9px}.detail-image{width:100%;max-height:230px;object-fit:cover;border-radius:15px;margin-bottom:15px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.detail-description{white-space:pre-line;font-size:13px;line-height:1.85;color:#eee1fa;overflow-wrap:anywhere}.toast{pointer-events:none;position:fixed;z-index:100;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;transition:.25s;color:#fff;background:#2d1b56;border:1px solid #d9a7ff;border-radius:14px;padding:14px 22px;box-shadow:0 10px 32px #170b40;max-width:calc(100vw - 20px);text-align:center;font-size:12px}.toast.visible{transform:translate(-50%,0);opacity:1}
@media(max-width:1100px){.app-shell{width:calc(100% - 38px)}.topbar{gap:12px;padding:10px 14px}.brand{min-width:170px}.brand-name{font-size:35px}.brand-flower{font-size:36px}.topnav{gap:0}.nav-link,.header-btn{padding:10px 9px}.header-actions{gap:3px}.hero{padding-left:6px}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-shell{width:calc(100% - 20px);margin-top:10px}.background-world{background-position:52% 20%}.background-shade{background:linear-gradient(180deg,#25154e66 0%,#1e123e55 30%,#1c113fc9 64%,#140e31 95%)}.topbar{top:6px;flex-wrap:wrap;border-radius:18px;gap:5px;justify-content:space-between}.brand{min-width:unset}.brand-name{font-size:35px}.brand-note{font-size:7px;letter-spacing:1px}.topnav{order:3;width:100%;justify-content:space-around}.nav-link{flex:1;text-align:center;font-size:11px}.header-actions{margin:0}.header-btn{padding:9px;font-size:11px}.header-btn span{display:none}.hero{min-height:540px;align-items:flex-end;padding:60px 14px 33px}.hero-copy{max-width:100%}.hero-title{font-size:clamp(93px,22vw,135px);margin-top:17px}.hero-subtitle{font-size:15px;margin:7px 0}.hero-description{font-size:12px;max-width:400px}.eyebrow{font-size:8px;letter-spacing:1.4px}.hero-mark{display:none}.hero-actions{gap:9px}.primary-btn,.ghost-btn{font-size:12px;padding:11px 14px}.notification{padding:14px;gap:10px}.notification p{font-size:11px}.mini-share{font-size:0;padding:9px}.mini-share::after{content:'↗';font-size:17px}.directory{padding:19px 15px;border-radius:18px}.section-heading{display:block}.section-heading h2,.catalog-heading h2{font-size:21px}.search-frame{margin-top:16px;min-width:0}.directory-links{margin-top:14px;gap:7px}.directory-chip{padding:10px 12px;font-size:11px}.category-group{margin:16px 0 25px}.content-grid{grid-template-columns:1fr;gap:12px}.resource-art{height:190px}.category-banner h3{font-size:18px}.footer{flex-wrap:wrap;font-size:10px;padding:15px}.footer p{order:3;flex-basis:100%}.admin-columns{grid-template-columns:1fr}.admin-dialog{padding:15px}.admin-tabs button{font-size:10px;padding:9px}.catalog-heading{padding:0 5px}.catalog-meta{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.petal{display:none}*,*::before,*::after{animation:none!important;transition:none!important}}
