@font-face{font-family:Onest;src:url(../fonts/Onest-variable.woff2) format(woff2);font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:"Onest Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:112.604%;ascent-override:86.1426%;descent-override:27.0861%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Segoe UI";src:local("Segoe UI");size-adjust:105.7833%;ascent-override:91.6969%;descent-override:28.8325%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:104.2222%;ascent-override:93.0704%;descent-override:29.2644%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Arial";src:local("Arial");size-adjust:105.2039%;ascent-override:92.2019%;descent-override:28.9913%;line-gap-override:0%}@font-face{font-family:"Onest Fallback: Noto Sans";src:local("Noto Sans");size-adjust:98.9451%;ascent-override:98.0341%;descent-override:30.8252%;line-gap-override:0%}*{box-sizing:border-box;margin:0;padding:0}:root{--gradient-1:#ac86cb66;--gradient-2:#c78e9e66;--bg:#fff;--bg-secondary:#fafafa;--bg-tertiary:#f0f0f0;--bg-quaternary:#eee;--text:#1e293b;--text-secondary:#64748b;--text-tertiary:#94a3b8;--hover-bg:#e2e8f0;--border:#e5e7eb}.dark{--gradient-1:#45285d66;--gradient-2:#5c2d3a66;--bg:#0a0a0a;--bg-secondary:#121212;--bg-tertiary:#1a1a1a;--bg-quaternary:#111;--text:#eee;--text-secondary:#9ca3af;--text-tertiary:#6b7280;--border:#262626}body,button,input,option,select,textarea{font-family:Onest,"Onest Fallback: BlinkMacSystemFont","Onest Fallback: Segoe UI","Onest Fallback: Helvetica Neue","Onest Fallback: Arial","Onest Fallback: Noto Sans",system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-feature-settings:"ss02" 1}body{background:var(--bg);color:var(--text);line-height:1.6;transition:background-color .3s ease,color .3s ease;-webkit-tap-highlight-color:transparent;scrollbar-gutter:stable}html{color-scheme:light dark;scroll-behavior:smooth;scrollbar-color:var(--text) transparent;scrollbar-width:thin;transition:background-color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background-color:var(--gradient-2);color:var(--text)}::selection{background-color:var(--gradient-2);color:var(--text)}section{background:var(--bg-secondary);border-radius:24px;flex-direction:column;gap:1.5rem;position:relative;corner-shape:superellipse(1.5);border:1px solid var(--bg-tertiary);box-shadow:0 2px 25px var(--bg-quaternary);justify-content:center;padding:2rem}section,section h2{color:var(--text);display:flex}section h2{align-items:center;font-size:2rem;justify-content:space-between}section h2 svg{height:1.75rem;margin-right:.5rem;vertical-align:middle;width:1.75rem}.app{min-height:100vh;padding:2rem;transition:padding .3s ease}.container{display:flex;flex-direction:column;gap:1rem;justify-content:center;margin:0 auto;max-width:900px;min-height:91dvh;transition:max-width .3s ease}.app.full-width-app{padding:0}.container.full-width-container{margin:0;max-width:100%}button svg{vertical-align:middle}@media(max-width:1024px){.container{flex-direction:column}.app{padding:5rem .5rem .5rem}.main-content{gap:1rem}section{padding:1.25rem}}@media(max-width:768px){.app{padding:4rem .5rem}.container,.main-content{gap:1rem}}@keyframes ripple-animation{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(1)}}.ripple-effect{background:#ffffff4d;border-radius:50%;pointer-events:none;position:absolute;z-index:1}.slide-enter-active{transition:all .4s ease-out}.slide-leave-active{transition:all .3s ease-in}.slide-enter-from{opacity:0;transform:translate(30px)}.slide-leave-to{opacity:0;transform:translate(-30px)}.slide-move{transition:transform .4s ease-out}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.ripple-effect{display:none}}input:focus,select:focus,textarea:focus{outline:none}mark{background:transparent;color:var(--text);padding:0 2px;position:relative;z-index:0}mark:before{background:#ac86cb66;border-radius:8px;content:"";height:1.5em;left:0;position:absolute;top:50%;width:100%;corner-shape:superellipse(1.3);transform:rotate(0) scaleX(0);transform-origin:left center;transition:transform .6s ease;translate:0 -50%;z-index:-1}mark.animate:before{transform:rotate(-2deg) scaleX(1)}body[style*=blur],body[style*=contrast],body[style*=grayscale]{transition:filter .5s ease}@media(max-width:768px){.notification{left:10px;right:10px;top:10px;transform:translateY(-100%)}.notification.show{transform:translateY(0)}}h1,h2,h3{font-weight:600}::view-transition-group(root){animation-duration:.5s}::view-transition-group(top-bar){animation:none;z-index:100000}::view-transition-group(project-bg-*),::view-transition-group(project-logo-*),::view-transition-group(project-title-*){animation-duration:.6s;animation-timing-function:cubic-bezier(.22,1,.36,1)}::view-transition-new(project-title-*),::view-transition-old(project-title-*){width:100%}::view-transition-old(root){animation:fade-out .3s ease-out both;z-index:1}::view-transition-new(root){animation:fade-in .5s ease-in both,ripple-effect .5s ease-in both;z-index:9999}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes ripple-effect{0%{clip-path:circle(0 at var(--ripple-x,50%) var(--ripple-y,50%))}to{clip-path:circle(var(--ripple-radius,100%) at var(--ripple-x,50%) var(--ripple-y,50%))}}.skip-to-content{background:var(--text);border-radius:0 0 12px 12px;color:var(--bg);font-weight:600;left:50%;padding:.75rem 1.5rem;position:absolute;text-decoration:none;top:-100%;transform:translate(-50%);transition:top .3s ease;z-index:100001}.skip-to-content:focus{top:0}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}@media(pointer:coarse){.expand-button,.lang-btn-minimal,.main-btn,.nav-btn,.nav-pill,.social-mini-btn,.theme-btn-minimal,[role=button],a,button,input[type=checkbox],input[type=radio],select,summary{min-height:44px;min-width:44px}@media(max-width:640px){.nav-pill{padding:.75rem}}}touch-action:manipulation;[role=button]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lang-btn-minimal[data-v-f1dca92a]{align-items:center;background:transparent;border:none;border-radius:10px;color:var(--text);cursor:pointer;display:flex;gap:.25rem;height:36px;justify-content:center;position:relative;transition:all .2s ease;width:36px}.lang-btn-minimal[data-v-f1dca92a]:hover{opacity:.8}.theme-btn-minimal[data-v-b6e48949]{align-items:center;background:transparent;border:none;border-radius:10px;color:var(--text);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.theme-btn-minimal[data-v-b6e48949]:hover{opacity:.8}.theme-icon[data-v-b6e48949]{height:1.5rem;transform-origin:center;transition:transform .5s cubic-bezier(.4,0,.2,1);width:1.5rem}.theme-btn-minimal:hover .theme-icon[data-v-b6e48949]{transform:rotate(15deg) scale(1.1)}.theme-btn-minimal:active .theme-icon[data-v-b6e48949]{transform:rotate(-15deg) scale(.95)}@media(prefers-reduced-motion:reduce){.theme-icon[data-v-b6e48949]{transition:none}.theme-btn-minimal:active .theme-icon[data-v-b6e48949],.theme-btn-minimal:hover .theme-icon[data-v-b6e48949]{transform:none}}.top-bar[data-v-9a2374f2]{background:transparent;left:0;padding:.75rem 1.5rem;pointer-events:none;position:fixed;right:0;top:0;view-transition-name:top-bar;z-index:10000}.top-bar-inner[data-v-9a2374f2]{gap:1rem;justify-content:space-between;margin:0 auto;max-width:1200px;pointer-events:auto}.logo-link[data-v-9a2374f2],.top-bar-inner[data-v-9a2374f2]{align-items:center;display:flex}.logo-link[data-v-9a2374f2]{flex-shrink:0;transition:opacity .2s ease}.logo-link[data-v-9a2374f2]:hover{opacity:.7}.logo[data-v-9a2374f2]{height:24px;width:auto}.main-nav[data-v-9a2374f2]{flex:1;gap:.25rem;justify-content:center;margin:0 auto;max-width:-moz-fit-content;max-width:fit-content}.main-nav[data-v-9a2374f2],.nav-pill[data-v-9a2374f2]{align-items:center;display:flex}.nav-pill[data-v-9a2374f2]{border-radius:16px;gap:.75rem;padding:.5rem 1rem;corner-shape:superellipse(1.5);background:transparent;border:1px solid transparent;color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:all .6s linear(0,.029 1.3%,.119 2.8%,.659 8.7%,.871 11.6%,1.009 14.6%,1.052 16.2%,1.078 17.9%,1.088 19.7%,1.085 21.7%,1.014 31.4%,.993 38%,1.001 57.6%,1);white-space:nowrap}.nav-pill[data-v-9a2374f2]:hover{background:var(--bg-tertiary);color:var(--text)}.nav-pill[data-v-9a2374f2]:active{transform:scale(.95)}.nav-pill.router-link-active[data-v-9a2374f2]{background:var(--bg-secondary);color:var(--text)}.back-link[data-v-9a2374f2]{color:var(--text-secondary)}.back-link[data-v-9a2374f2]:hover{color:var(--text)}.nav-utils[data-v-9a2374f2]{align-items:center;display:flex;flex-shrink:0;gap:.5rem}@media(max-width:768px){.top-bar[data-v-9a2374f2]{padding:.5rem 1rem}.top-bar-inner[data-v-9a2374f2]{gap:.75rem}.logo[data-v-9a2374f2]{height:24px}.main-nav[data-v-9a2374f2]{display:none}.nav-utils[data-v-9a2374f2]{gap:.25rem}}@media(prefers-reduced-motion:reduce){.logo-link[data-v-9a2374f2],.nav-pill[data-v-9a2374f2]{transition:none}}footer[data-v-eeff2514]{background:var(--bg-secondary);border:1px solid var(--border-color,var(--bg-tertiary));border-radius:16px;color:var(--text);margin-top:3rem;padding:1.5rem 2rem}.footer-content[data-v-eeff2514]{flex-wrap:wrap;font-size:.95rem;gap:1rem;justify-content:space-between}.copyright[data-v-eeff2514],.footer-content[data-v-eeff2514]{align-items:center;display:flex}.copyright[data-v-eeff2514]{font-weight:500;gap:.5rem;opacity:.7}.divider[data-v-eeff2514]{opacity:.3}.heart[data-v-eeff2514]{animation:heartbeat-eeff2514 1.5s ease-in-out infinite;color:#ef4444;display:inline-block}.motto-container[data-v-eeff2514]{align-items:center;display:flex;justify-content:flex-end;min-height:1.5em}.motto[data-v-eeff2514]{color:var(--text-secondary);display:inline-block}.slide-up-enter-active[data-v-eeff2514],.slide-up-leave-active[data-v-eeff2514]{transition:all .4s cubic-bezier(.25,1,.5,1)}.slide-up-enter-from[data-v-eeff2514]{opacity:0;transform:translateY(10px)}.slide-up-leave-to[data-v-eeff2514]{opacity:0;transform:translateY(-10px)}.slide-up-enter-to[data-v-eeff2514],.slide-up-leave-from[data-v-eeff2514]{opacity:1;transform:translateY(0)}@keyframes heartbeat-eeff2514{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@media(max-width:640px){.footer-content[data-v-eeff2514]{flex-direction:column;gap:1.5rem;text-align:center}.footer-content[data-v-eeff2514],.motto-container[data-v-eeff2514]{justify-content:center}}@media(prefers-reduced-motion:reduce){.heart[data-v-eeff2514]{animation:none}.slide-up-enter-active[data-v-eeff2514],.slide-up-leave-active[data-v-eeff2514]{transition:opacity .3s ease}.slide-up-enter-from[data-v-eeff2514],.slide-up-leave-to[data-v-eeff2514]{transform:none}}.bottom-bar[data-v-4bb0c7bb]{align-items:center;background:var(--bg);border-top:1px solid var(--border);bottom:0;display:none;justify-content:space-around;left:0;padding:.5rem 1rem max(.5rem,env(safe-area-inset-bottom));position:fixed;right:0;view-transition-name:bottom-bar;z-index:10000}.bottom-bar-item[data-v-4bb0c7bb]{align-items:center;border-radius:12px;display:flex;justify-content:center;padding:.5rem;corner-shape:superellipse(1.5);color:var(--text-secondary);min-height:44px;min-width:44px;text-decoration:none;transition:all .2s ease}.bottom-bar-item[data-v-4bb0c7bb]:hover{background:var(--bg-tertiary);color:var(--text)}.bottom-bar-item.router-link-active[data-v-4bb0c7bb]{background:var(--bg-secondary);color:var(--text)}@media(max-width:768px){.bottom-bar[data-v-4bb0c7bb]{display:flex}}@media(prefers-reduced-motion:reduce){.bottom-bar-item[data-v-4bb0c7bb]{transition:none}}@property --x1{syntax:"<percentage>";inherits:false;initial-value:0%}@property --y1{syntax:"<percentage>";inherits:false;initial-value:0%}@property --x2{syntax:"<percentage>";inherits:false;initial-value:100%}@property --y2{syntax:"<percentage>";inherits:false;initial-value:100%}.error-page-wrapper[data-v-0643edd4]{background:var(--bg);min-height:100vh}.error-hero[data-v-0643edd4],.error-page-wrapper[data-v-0643edd4]{align-items:center;display:flex;justify-content:center}.error-hero[data-v-0643edd4]{--x1:0%;--y1:0%;--x2:100%;--y2:100%;animation:rotateBlobs-0643edd4 12s cubic-bezier(.22,1,.36,1) infinite;background:radial-gradient(circle at var(--x1) var(--y1),var(--gradient-1) 0,transparent 40%),radial-gradient(circle at var(--x2) var(--y2),var(--gradient-2) 0,transparent 40%),var(--bg-quaternary);border:0;color:var(--text);max-width:900px;min-height:450px;padding:2rem;position:relative;text-align:center;width:100%}.error-hero[data-v-0643edd4]:before{background:inherit;content:"";filter:blur(30px);inset:0;opacity:.5;position:absolute;z-index:0}.error-content[data-v-0643edd4]{align-items:center;display:flex;flex-direction:column;gap:1rem;max-width:600px;position:relative;z-index:10}.error-code[data-v-0643edd4]{font-size:6rem;font-weight:700;line-height:1;margin:0}.error-title[data-v-0643edd4]{font-size:1.5rem;font-weight:600;margin:0}.error-description[data-v-0643edd4]{color:var(--text-secondary);font-size:1rem;line-height:1.6;margin:0}.error-actions[data-v-0643edd4]{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:1rem}.error-button[data-v-0643edd4]{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.625rem 1.25rem;text-decoration:none;transition:all .3s ease}.error-button.primary[data-v-0643edd4]{background:var(--text);color:var(--bg)}.error-button.primary[data-v-0643edd4]:hover{box-shadow:0 8px 20px -6px #0000004d;transform:translateY(-2px)}.error-button.secondary[data-v-0643edd4]{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text)}.error-button.secondary[data-v-0643edd4]:hover{background:var(--bg-tertiary);transform:translateY(-2px)}@keyframes rotateBlobs-0643edd4{0%,to{--x1:0%;--y1:0%;--x2:100%;--y2:100%}25%{--x1:100%;--y1:0%;--x2:0%;--y2:100%}50%{--x1:100%;--y1:100%;--x2:0%;--y2:0%}75%{--x1:0%;--y1:100%;--x2:100%;--y2:0%}}@media(max-width:640px){.error-code[data-v-0643edd4]{font-size:4rem}.error-title[data-v-0643edd4]{font-size:1.25rem}.error-hero[data-v-0643edd4]{min-height:280px}}
