:root{--bg-primary:#050510;--bg-secondary:#0c0c1d;--bg-tertiary:#12122a;--bg-glass:#0c0c1db3;--border:#1a1a2e;--border-color:#1a1a2e;--border-glow:#00d4ff33;--text-primary:#e8e8f0;--text-color:#e8e8f0;--text-secondary:#8888a0;--text-muted:#8888a0;--text-dim:#555570;--accent:#00d4ff;--accent-hover:#3df;--accent-glow:#00d4ff26;--accent-secondary:#7c3aed;--shadow:0 4px 24px #0006;--shadow-glow:0 0 30px #00d4ff1a;--radius:10px;--radius-lg:16px;--radius-xl:24px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-base:15px;--heading-weight:700;--body-weight:400;--letter-spacing:-.025em;--line-height:1.65;--container-width:1140px;--section-padding:100px;--hover-lift:6px}[data-theme=light]{--bg-primary:#f0f0f8;--bg-secondary:#fff;--bg-tertiary:#e8e8f0;--bg-glass:#fffc;--border:#d0d0e0;--border-color:#d0d0e0;--border-glow:#00b4dc4d;--text-primary:#0a0a1a;--text-color:#0a0a1a;--text-secondary:#555570;--text-muted:#555570;--text-dim:#8888a0;--accent:#09c;--accent-hover:#07a;--accent-glow:#0099cc1a;--accent-secondary:#6d28d9;--shadow:0 4px 24px #00000014;--shadow-glow:0 0 30px #0099cc14}body{color:#e8e8f0;-webkit-font-smoothing:antialiased;background:#050510;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}::selection{color:#fff;background:#7c3aed}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--body-weight);line-height:var(--line-height);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;transition:background .4s,color .4s;overflow-x:hidden}::selection{background:var(--accent);color:#fff}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.container{max-width:var(--container-width);margin:0 auto;padding:0 24px}@media (width>=768px){.container{padding:0 40px}}.section{padding:var(--section-padding) 0}.label{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin-bottom:16px;font-size:11px;font-weight:700;display:inline-flex}.label:before{content:"";background:var(--accent);width:20px;height:1.5px}.title{font-family:var(--font-heading);font-size:clamp(28px,5vw,44px);font-weight:var(--heading-weight);letter-spacing:var(--letter-spacing);color:var(--text-primary);margin-bottom:16px;line-height:1.12}.desc{font-size:16px;line-height:var(--line-height);color:var(--text-secondary);max-width:560px}.btn{border-radius:var(--radius);align-items:center;gap:8px;padding:13px 28px;font-size:14px;font-weight:600;transition:all .25s;display:inline-flex;position:relative;overflow:hidden}.btn--primary{background:var(--gradient-main);color:#fff;border:none}.btn--primary:before{content:"";opacity:0;background:linear-gradient(135deg,#ffffff26,#0000);transition:opacity .25s;position:absolute;inset:0}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #00d4ff4d}.btn--primary:hover:before{opacity:1}.btn--secondary{color:var(--text-primary);border:1px solid var(--border);background:0 0}.btn--secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.scroll-reveal{opacity:0;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.scroll-reveal--visible{opacity:1;transform:translateY(0)}.main--with-sidebar{margin-left:60px}@media (width<=1200px){.main--with-sidebar{margin-left:0}}.navbar{z-index:100;background:#05051099;border-bottom:1px solid #1a1a2e80;transition:background .3s;top:0;left:0;right:0}.navbar--fixed{position:fixed}.navbar--sticky{position:sticky}.navbar--static{position:static}.navbar--blur{-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2)}.navbar--transparent{background:0 0;border-bottom-color:#0000}.navbar--transparent.navbar--blur{background:#05051080;border-bottom-color:#1a1a2e4d}.navbar__inner{justify-content:space-between;align-items:center;height:56px;display:flex}.navbar__brand{letter-spacing:-.03em;color:var(--text-primary);font-size:16px;font-weight:800;transition:color .2s}.navbar__brand:hover{color:var(--accent)}.navbar__links{gap:6px;display:none}@media (width>=768px){.navbar__links{display:flex}}.navbar__link{color:var(--text-secondary);border-radius:var(--radius);padding:6px 14px;font-size:13px;font-weight:500;transition:all .2s}.navbar__link:hover{color:var(--text-primary);background:#ffffff0a}.navbar__actions{align-items:center;gap:4px;display:flex}.navbar__theme-btn{width:34px;height:34px;color:var(--text-secondary);border-radius:var(--radius);justify-content:center;align-items:center;transition:all .2s;display:flex}.navbar__theme-btn:hover{color:var(--text-primary);background:#ffffff0f}.navbar__toggle{width:34px;height:34px;color:var(--text-primary);justify-content:center;align-items:center;display:flex}@media (width>=768px){.navbar__toggle{display:none}}.navbar__mobile{background:var(--bg-primary);border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:16px 24px;animation:.2s ease-out navbarSlide;display:flex;position:fixed;top:56px;left:0;right:0}@keyframes navbarSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}[data-theme=light] .navbar{background:#f0f0f8b3}[data-theme=light] .navbar--transparent{background:0 0}[data-theme=light] .navbar--transparent.navbar--blur{background:#f0f0f899}.hero{align-items:center;min-height:100vh;padding:100px 0 60px;display:flex}.hero__grid{grid-template-columns:1fr;align-items:center;gap:40px;display:grid}@media (width>=1024px){.hero__grid{grid-template-columns:1.3fr 1fr;gap:56px}}.hero__grid--center{text-align:center}@media (width>=1024px){.hero__grid--center{grid-template-columns:1fr}}.hero__grid--center .hero__content{max-width:700px;margin:0 auto}.hero__grid--center .hero__actions,.hero__grid--center .hero__stats,.hero__grid--center .hero__visual{justify-content:center}@media (width>=1024px){.hero__grid--right{grid-template-columns:1fr 1.3fr}.hero__grid--right .hero__visual{order:-1}}.hero__content{max-width:620px}.hero__content--fadeIn{animation:.8s ease-out hFadeIn}.hero__content--slideUp{animation:.8s ease-out hSlideUp}.hero__content--scaleIn{animation:.8s ease-out hScaleIn}.hero__content--slideLeft{animation:.8s ease-out hSlideLeft}.hero__title{font-family:var(--font-heading);font-size:clamp(40px,7vw,72px);font-weight:var(--heading-weight);letter-spacing:var(--letter-spacing);color:var(--text-primary);margin-bottom:20px;line-height:1.02}.hero__title span{background:var(--gradient-main);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;display:block}.hero__desc{font-size:16px;line-height:var(--line-height);color:var(--text-secondary);max-width:480px;margin-bottom:32px}.hero__actions{flex-wrap:wrap;gap:12px;margin-bottom:44px;display:flex}.hero__stats{border-top:1px solid var(--border);gap:36px;padding-top:24px;display:flex}.hero__stat-value{font-size:26px;font-weight:var(--heading-weight);background:var(--gradient-main);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:4px;line-height:1}.hero__stat-label{color:var(--text-dim);font-size:12px;font-weight:500}.hero__visual{justify-content:center;display:flex}@media (width>=1024px){.hero__visual{justify-content:flex-end}}.hero__image{width:100%;max-width:380px;position:relative}.hero__image:before{content:"";background:radial-gradient(circle, var(--accent-glow), transparent 70%);z-index:-1;border-radius:50%;position:absolute;inset:-20px}.hero__image img{filter:drop-shadow(0 20px 50px #00d4ff33);width:100%;height:auto;transition:transform .5s cubic-bezier(.16,1,.3,1)}.hero__image img:hover{transform:scale(1.03)translateY(-4px)}@keyframes hFadeIn{0%{opacity:0}to{opacity:1}}@keyframes hSlideUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes hScaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes hSlideLeft{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}.work__header{margin-bottom:44px}.work__grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=768px){.work__grid{grid-template-columns:repeat(2,1fr)}}.project{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);transition:all .35s cubic-bezier(.16,1,.3,1);overflow:hidden}.project--slideUp{animation:.6s ease-out both pSlideUp}.project--fadeIn{animation:.6s ease-out both pFadeIn}.project--scaleIn{animation:.6s ease-out both pScaleIn}.project:hover{border-color:var(--border-glow);transform:translateY(calc(var(--hover-lift,6px) * -1));box-shadow:0 20px 50px #0000004d, var(--shadow-glow)}.project__image{width:100%;height:170px;overflow:hidden}.project__image img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1)}.project:hover .project__image img{transform:scale(1.06)}.project__body{padding:22px}.project__header{justify-content:space-between;align-items:flex-start;margin-bottom:10px;display:flex}.project__category{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:600}.project__number{color:var(--accent);background:var(--accent-glow);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.project__title{font-family:var(--font-heading);font-size:18px;font-weight:var(--heading-weight);letter-spacing:var(--letter-spacing);color:var(--text-primary);margin-bottom:8px}.project__desc{font-size:13px;line-height:var(--line-height);color:var(--text-secondary);margin-bottom:14px}.project__stack{flex-wrap:wrap;gap:5px;margin-bottom:14px;display:flex}.project__tech{background:var(--accent-glow);color:var(--accent);letter-spacing:.02em;border:1px solid #00d4ff1f;border-radius:6px;padding:3px 9px;font-size:10px;font-weight:600}.project__footer{border-top:1px solid var(--border);padding-top:12px}.project__link{color:var(--accent);align-items:center;gap:6px;font-size:13px;font-weight:600;transition:gap .2s;display:inline-flex}.project__link:hover{gap:10px}@keyframes pSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pFadeIn{0%{opacity:0}to{opacity:1}}@keyframes pScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.about__grid{grid-template-columns:1fr;gap:48px;display:grid}@media (width>=1024px){.about__grid{grid-template-columns:1fr 1fr;gap:56px}}.about__content{max-width:520px}.about__text{font-size:15px;line-height:var(--line-height);color:var(--text-secondary);margin-bottom:24px}.about__skills{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.about__features{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.about__features{grid-template-columns:repeat(2,1fr)}}.skill-tag{background:var(--accent-glow);color:var(--accent);border:1px solid #00d4ff1f;border-radius:20px;padding:5px 12px;font-size:11px;font-weight:600;transition:all .2s;display:inline-block}.skill-tag:hover{border-color:var(--accent);background:#00d4ff26;transform:translateY(-1px)}.feature{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;transition:all .3s cubic-bezier(.16,1,.3,1)}.feature:hover{border-color:var(--border-glow);transform:translateY(calc(var(--hover-lift,6px) * -.5));box-shadow:var(--shadow-glow)}.feature__icon{background:var(--accent-glow);width:36px;height:36px;color:var(--accent);border:1px solid #00d4ff1f;border-radius:10px;justify-content:center;align-items:center;margin-bottom:12px;display:flex}.feature__title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:4px;font-size:14px;font-weight:700}.feature__text{font-size:12px;line-height:var(--line-height);color:var(--text-secondary)}.contact__card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);text-align:center;padding:52px 32px}@media (width>=768px){.contact__card{padding:64px 56px}}.contact__title{font-family:var(--font-heading);font-size:clamp(26px,5vw,42px);font-weight:var(--heading-weight);letter-spacing:var(--letter-spacing);color:var(--text-primary);white-space:pre-line;margin-bottom:12px;line-height:1.15}.contact__desc{font-size:15px;line-height:var(--line-height);color:var(--text-secondary);max-width:480px;margin:0 auto 28px}.contact__actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.contact__socials{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:14px;margin-top:28px;padding-top:24px;display:flex}.contact__social-link{color:var(--text-secondary);border-radius:var(--radius);align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.contact__social-link:hover{color:var(--accent);background:var(--accent-glow)}.footer{border-top:1px solid var(--border);text-align:center;margin-top:52px;padding:24px 0}.footer__text{color:var(--text-dim);font-size:12px}.footer__text a{color:var(--accent);transition:opacity .2s}.footer__text a:hover{opacity:.8}.footer__links{justify-content:center;gap:14px;margin-top:12px;display:flex}.footer__links a{color:var(--text-dim);font-size:11px;transition:color .2s}.footer__links a:hover{color:var(--accent)}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-40px)scale(1.05)}66%{transform:translate(-20px,20px)scale(.95)}}.bg-orb{filter:blur(100px);pointer-events:none;z-index:0;animation:orbFloat var(--orb-speed,25s) infinite ease-in-out;border-radius:50%;position:fixed}.bg-grid{pointer-events:none;z-index:0;background-image:linear-gradient(#00d4ff04 1px,#0000 1px),linear-gradient(90deg,#00d4ff04 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0}.cursor-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#00d4ff0f,#0000 70%);border-radius:50%;width:300px;height:300px;transition:left .15s ease-out,top .15s ease-out;position:fixed;transform:translate(-50%,-50%)}.side-rail{z-index:90;flex-direction:column;gap:8px;display:flex;position:fixed;top:50%;left:14px;transform:translateY(-50%)}@media (width<=1200px){.side-rail{display:none}}.side-rail__link{background:var(--bg-secondary);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:40px;height:40px;color:var(--text-secondary);border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:flex}.side-rail__link:hover{background:var(--accent-glow);border-color:var(--border-glow);color:var(--accent);transform:translate(3px)}.side-rail__divider{background:linear-gradient(180deg, transparent, var(--border), transparent);width:1.5px;height:32px;margin:6px auto}.anime-panel{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.anime-panel__glow{filter:blur(60px);opacity:.5;background:radial-gradient(circle,#00d4ff33 0%,#0000 70%);border-radius:50%;width:80%;height:80%;animation:4s ease-in-out infinite apGlow;position:absolute}.anime-panel__ring{border:1.5px solid var(--border);border-radius:50%;width:90%;height:90%;animation:30s linear infinite apRotate;position:absolute}.anime-panel__ring:before{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;position:absolute;top:-5px;left:50%;transform:translate(-50%);box-shadow:0 0 16px #00d4ff66}.anime-panel__ring--2{border-color:#00d4ff26;width:70%;height:70%;animation-duration:20s;animation-direction:reverse}.anime-panel__ring--2:before{background:var(--accent-secondary);width:8px;height:8px}.anime-panel__character{z-index:2;filter:drop-shadow(0 20px 50px #00d4ff33);width:75%;height:auto;animation:6s ease-in-out infinite apFloat;position:relative}.anime-panel__badge{background:var(--bg-glass,#0c0c1db3);border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:3;border-radius:12px;align-items:center;gap:10px;padding:14px 20px;display:flex;position:absolute;bottom:10%;right:10%}.anime-panel__badge-icon{background:linear-gradient(135deg,#00d4ff,#7c3aed);border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 12px #00d4ff40}.anime-panel__badge-text-title{color:var(--text-primary);margin-bottom:1px;font-size:13px;font-weight:700}.anime-panel__badge-text-subtitle{color:var(--text-dim);font-size:11px}@keyframes apGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.7;transform:scale(1.08)}}@keyframes apRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes apFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}.stats{border-top:1px solid var(--border);gap:36px;padding-top:36px;display:flex}@media (width<=640px){.stats{gap:20px}}.stats__item{flex:1}.stats__value{letter-spacing:-.03em;background:var(--gradient-main,linear-gradient(135deg, #00d4ff, #7c3aed));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:clamp(26px,4vw,38px);font-weight:800;line-height:1}.stats__label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:600}.login-page{z-index:10000;background:#050510;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.login-bg{position:absolute;inset:0;overflow:hidden}.login-bg__orb{filter:blur(120px);opacity:.3;border-radius:50%;animation:20s ease-in-out infinite loginOrb;position:absolute}.login-bg__orb--1{background:#00d4ff;width:500px;height:500px;animation-delay:0s;top:-200px;left:-150px}.login-bg__orb--2{background:#7c3aed;width:400px;height:400px;animation-delay:-7s;bottom:-150px;right:-100px}.login-bg__orb--3{opacity:.15;background:#00d4ff;width:300px;height:300px;animation-delay:-14s;top:50%;left:50%;transform:translate(-50%,-50%)}.login-bg__grid{background-image:linear-gradient(#00d4ff05 1px,#0000 1px),linear-gradient(90deg,#00d4ff05 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0}@keyframes loginOrb{0%,to{transform:translate(0)scale(1)}33%{transform:translate(40px,-40px)scale(1.1)}66%{transform:translate(-30px,30px)scale(.95)}}.login-container{z-index:1;width:100%;max-width:400px;padding:20px;position:relative}.login-card{-webkit-backdrop-filter:blur(30px)saturate(1.3);backdrop-filter:blur(30px)saturate(1.3);background:#0c0c1dcc;border:1px solid #00d4ff14;border-radius:20px;padding:40px 32px;animation:.5s cubic-bezier(.16,1,.3,1) loginSlide;box-shadow:0 32px 64px #00000080,inset 0 0 0 1px #ffffff08}@keyframes loginSlide{0%{opacity:0;transform:translateY(20px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.login-header{text-align:center;margin-bottom:28px}.login-header .login-icon{background:var(--gradient-main,linear-gradient(135deg, #00d4ff, #7c3aed));color:#fff;border-radius:14px;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 16px;animation:3s ease-in-out infinite loginIconPulse;display:flex;box-shadow:0 8px 24px #00d4ff4d}.login-header h1{color:#e8e8f0;letter-spacing:-.03em;margin:0 0 4px;font-size:1.35rem;font-weight:800}.login-header p{color:#8888a0;margin:0;font-size:.8rem}@keyframes loginIconPulse{0%,to{transform:scale(1);box-shadow:0 8px 24px #00d4ff4d}50%{transform:scale(1.04);box-shadow:0 12px 32px #00d4ff66}}.login-error{color:#fca5a5;background:#ef44440f;border:1px solid #ef444433;border-radius:10px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:.75rem;animation:.4s ease-in-out loginShake;display:flex}@keyframes loginShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.login-form{flex-direction:column;gap:16px;display:flex}.login-field label{color:#8888a0;text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;margin-bottom:6px;font-size:.75rem;font-weight:600;display:flex}.login-field input{color:#e8e8f0;background:#ffffff08;border:1px solid #ffffff0f;border-radius:10px;width:100%;padding:12px 14px;font-size:.875rem;transition:all .2s}.login-field input::placeholder{color:#555570}.login-field input:focus{background:#00d4ff08;border-color:#00d4ff;outline:none;box-shadow:0 0 0 3px #00d4ff14}.login-field input:disabled{opacity:.4;cursor:not-allowed}.login-field__input-wrapper{position:relative}.login-field__input-wrapper input{padding-right:44px}.login-field__toggle{color:#555570;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;transition:all .2s;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-field__toggle:hover{color:#8888a0;background:#ffffff0a}.login-options{justify-content:space-between;align-items:center;display:flex}.login-checkbox{color:#8888a0;cursor:pointer;align-items:center;gap:8px;font-size:.75rem;display:flex}.login-checkbox input{display:none}.login-checkbox__mark{border:1.5px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;transition:all .2s;display:flex}.login-checkbox__mark:after{content:"";opacity:0;background:#00d4ff;border-radius:2px;width:8px;height:8px;transition:all .2s;transform:scale(0)}input:checked+.login-checkbox__mark{border-color:#00d4ff}input:checked+.login-checkbox__mark:after{opacity:1;transform:scale(1)}.login-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#00d4ff,#7c3aed);border:none;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:14px;font-size:.875rem;font-weight:700;transition:all .25s;display:flex;position:relative;overflow:hidden}.login-submit:before{content:"";opacity:0;background:linear-gradient(135deg,#ffffff1f,#0000);transition:opacity .25s;position:absolute;inset:0}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #00d4ff59}.login-submit:hover:not(:disabled):before{opacity:1}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite loginSpin}@keyframes loginSpin{to{transform:rotate(360deg)}}.login-footer{text-align:center;border-top:1px solid #ffffff0d;margin-top:20px;padding-top:16px}.login-footer__hint{color:#555570;justify-content:center;align-items:center;gap:6px;margin-bottom:4px;font-size:.7rem;display:flex}.login-footer__hint kbd{color:#8888a0;background:#ffffff0d;border:1px solid #ffffff14;border-radius:3px;padding:1px 5px;font-family:inherit;font-size:.65rem;display:inline-block}.login-footer__creds{color:#333350;margin:0;font-size:.65rem}@media (width<=480px){.login-card{padding:28px 20px}.login-header h1{font-size:1.15rem}}.toast-container{z-index:99999;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;top:72px;right:20px}.toast{background:var(--bg-secondary);border:1px solid var(--border);pointer-events:auto;border-radius:10px;align-items:center;gap:10px;min-width:260px;max-width:380px;padding:12px 16px;animation:.3s cubic-bezier(.16,1,.3,1) toastIn;display:flex;box-shadow:0 8px 24px #0006}.toast--success{border-left:3px solid #10b981}.toast--success .toast__icon{color:#10b981}.toast--error{border-left:3px solid #ef4444}.toast--error .toast__icon{color:#ef4444}.toast--info{border-left:3px solid #00d4ff}.toast--info .toast__icon{color:#00d4ff}.toast--warning{border-left:3px solid #f59e0b}.toast--warning .toast__icon{color:#f59e0b}.toast__icon{flex-shrink:0;display:flex}.toast__content{color:var(--text-primary);flex:1;font-size:.8rem;font-weight:500}.toast__close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:3px;transition:all .15s;display:flex}.toast__close:hover{background:var(--bg-tertiary);color:var(--text-primary)}@keyframes toastIn{0%{opacity:0;transform:translate(100%)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}@media (width<=480px){.toast-container{left:16px;right:16px}.toast{min-width:auto;max-width:none}}.admin-overlay{-webkit-backdrop-filter:blur(24px)saturate(1.2);backdrop-filter:blur(24px)saturate(1.2);z-index:9999;background:#050510cc;justify-content:center;align-items:center;padding:24px;animation:.25s ease-out admOverlayIn;display:flex;position:fixed;inset:0}@keyframes admOverlayIn{0%{opacity:0}to{opacity:1}}.admin-panel{background:var(--bg-primary);border:1px solid var(--border);width:100%;max-width:1100px;height:85vh;max-height:780px;box-shadow:0 40px 80px #0009, 0 0 0 1px #ffffff08 inset, var(--shadow-glow);border-radius:20px;flex-direction:column;animation:.35s cubic-bezier(.16,1,.3,1) admPanelIn;display:flex;overflow:hidden}@keyframes admPanelIn{0%{opacity:0;transform:scale(.95)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.admin-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.admin-header__left{align-items:center;gap:12px;display:flex}.admin-header h2{color:var(--text-primary);letter-spacing:-.03em;margin:0;font-size:1rem;font-weight:800}.admin-logo{color:#fff;background:linear-gradient(135deg,#00d4ff,#7c3aed);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 12px #00d4ff40}.admin-user{color:var(--text-dim);margin-top:1px;font-size:.7rem;display:block}.admin-header-actions{align-items:center;gap:6px;display:flex}.admin-icon-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;width:34px;height:34px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.admin-icon-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-dim)}.admin-icon-btn:disabled{opacity:.3;cursor:not-allowed}.admin-icon-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.admin-icon-btn--danger:hover{color:#ef4444;background:#ef444414;border-color:#ef44444d}.admin-save-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg,#00d4ff,#7c3aed);border:none;border-radius:8px;align-items:center;gap:5px;height:34px;padding:7px 16px;font-size:.75rem;font-weight:700;transition:all .2s;display:flex}.admin-save-btn:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #00d4ff4d}.admin-save-btn--saved{background:#10b981}.admin-body{flex:1;display:flex;overflow:hidden}.admin-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;width:200px;padding:10px 8px;display:flex;overflow-y:auto}.admin-sidebar::-webkit-scrollbar{width:3px}.admin-sidebar::-webkit-scrollbar-track{background:0 0}.admin-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.admin-sidebar__footer{border-top:1px solid var(--border);margin-top:auto;padding-top:10px}.admin-sidebar__shortcut{color:var(--text-dim);border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:.65rem;display:flex}.admin-nav-item{cursor:pointer;color:var(--text-secondary);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;width:100%;padding:9px 11px;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.admin-nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.admin-nav-item.active{color:var(--accent);background:linear-gradient(135deg,#00d4ff1f,#7c3aed1f);border:1px solid #00d4ff26}.admin-content{flex:1;padding:24px 28px;overflow-y:auto}.admin-content::-webkit-scrollbar{width:5px}.admin-content::-webkit-scrollbar-track{background:0 0}.admin-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.admin-section__header{margin-bottom:24px}.admin-section__header h3{color:var(--text-primary);letter-spacing:-.02em;margin:0 0 3px;font-size:1.1rem;font-weight:800}.admin-section__header p{color:var(--text-dim);margin:0;font-size:.75rem}.admin-section h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.12em;margin:24px 0 10px;font-size:.65rem;font-weight:700}.admin-subtabs{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;gap:2px;margin-bottom:24px;padding:3px;display:flex}.admin-subtab{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:7px;flex:1;padding:8px 14px;font-size:.75rem;font-weight:500;transition:all .15s}.admin-subtab:hover{color:var(--text-primary)}.admin-subtab.active{background:var(--bg-primary);color:var(--accent);font-weight:600}.admin-subsection{animation:.2s ease-out admFadeIn}.admin-field{margin-bottom:14px}.admin-field label{color:var(--text-secondary);letter-spacing:.03em;margin-bottom:5px;font-size:.7rem;font-weight:600;display:block}.admin-field input,.admin-field textarea,.admin-field select{background:var(--bg-secondary);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:8px;padding:9px 12px;font-family:inherit;font-size:.8rem;transition:all .15s}.admin-field input:focus,.admin-field textarea:focus,.admin-field select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #00d4ff14}.admin-field input::placeholder,.admin-field textarea::placeholder,.admin-field select::placeholder{color:var(--text-dim)}.admin-field textarea{resize:vertical;min-height:72px;line-height:1.5}.admin-field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23555570' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.admin-field--small{flex:1;margin-bottom:0}.admin-field--toggle{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.admin-field--toggle label{margin-bottom:0;font-size:.8rem}.admin-field--range{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.admin-field--range label{margin-bottom:8px}.admin-field--range input[type=range]{background:var(--bg-tertiary);appearance:none;border:none;border-radius:2px;outline:none;width:100%;height:3px;padding:0}.admin-field--range input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 2px 6px #00d4ff4d}.admin-field--range input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.admin-field--color .admin-color-input{align-items:center;gap:8px;display:flex}.admin-field--color .admin-color-input input[type=color]{cursor:pointer;border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;width:36px;height:36px;padding:2px}.admin-field--color .admin-color-input input[type=text]{flex:1;font-family:JetBrains Mono,monospace;font-size:.75rem}.admin-toggle{background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:all .2s;position:relative}.admin-toggle .admin-toggle-thumb{background:var(--text-secondary);border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:2px;left:2px}.admin-toggle.active{background:var(--accent);border-color:var(--accent)}.admin-toggle.active .admin-toggle-thumb{background:#fff;left:20px}.admin-row{align-items:flex-end;gap:8px;margin-bottom:10px;display:flex}.admin-row-2col{grid-template-columns:1fr 1fr;gap:10px;display:grid}.admin-delete-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;color:#ef4444;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:9px;transition:all .15s;display:flex}.admin-delete-btn:hover{background:#ef44440f;border-color:#ef44444d}.admin-add-btn{border:1.5px dashed var(--border);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:6px;width:100%;padding:10px 14px;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.admin-add-btn:hover{background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.admin-project-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:18px;transition:border-color .15s}.admin-project-card:hover{border-color:var(--text-dim)}.admin-project-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.admin-project-header h4{color:var(--text-primary);margin:0;font-size:.85rem;font-weight:700}.admin-code{font-family:JetBrains Mono,monospace;font-size:.7rem;line-height:1.6}.admin-stats-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;display:grid}.admin-stat-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px;transition:all .2s;position:relative;overflow:hidden}.admin-stat-card:hover{border-color:var(--border-glow);transform:translateY(-1px)}.admin-stat-card:before{content:"";background:var(--stat-color);height:2px;position:absolute;top:0;left:0;right:0}.admin-stat-card__icon{background:var(--accent-glow);width:32px;height:32px;color:var(--stat-color);border-radius:8px;justify-content:center;align-items:center;margin-bottom:8px;display:flex}.admin-stat-card__value{color:var(--text-primary);margin-bottom:2px;font-size:1.4rem;font-weight:800;line-height:1}.admin-stat-card__label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem;font-weight:600}.admin-info-cards{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px;display:grid}.admin-info-card{background:var(--bg-secondary);border:1px solid var(--border);color:var(--accent);border-radius:10px;align-items:center;gap:10px;padding:12px;transition:border-color .15s;display:flex}.admin-info-card:hover{border-color:var(--border-glow)}.admin-info-card div{flex-direction:column;display:flex}.admin-info-card strong{color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;font-size:.6rem;font-weight:700}.admin-info-card span{color:var(--text-primary);font-size:.8rem;font-weight:600}.admin-activity-list{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:4px}.admin-activity-item{border-radius:6px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:flex}.admin-activity-item:hover{background:var(--bg-tertiary)}.admin-activity-item:not(:last-child){border-bottom:1px solid var(--border)}.admin-activity-item__icon{background:var(--accent-glow);width:26px;height:26px;color:var(--accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.admin-activity-item__content{flex-direction:column;min-width:0;display:flex}.admin-activity-item__content span{color:var(--text-primary);text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.admin-activity-item__content small{color:var(--text-dim);font-size:.6rem}.admin-empty{text-align:center;color:var(--text-dim);margin:0;padding:20px;font-size:.75rem}.admin-link{color:var(--accent);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:8px 12px;font-size:.7rem;font-weight:600}.admin-link:hover{text-decoration:underline}.admin-section-list{flex-direction:column;gap:6px;display:flex}.admin-section-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .15s;display:flex}.admin-section-item.hidden{opacity:.4}.admin-section-item:hover{border-color:var(--text-dim)}.admin-section-item__info{align-items:center;gap:10px;display:flex}.admin-section-item__number{color:#fff;background:linear-gradient(135deg,#00d4ff,#7c3aed);border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.7rem;font-weight:700;display:flex}.admin-section-item__name{color:var(--text-primary);font-size:.8rem;font-weight:600}.admin-section-item__actions{gap:4px;display:flex}.admin-media-field{margin-bottom:18px}.admin-media-preview{border:1px solid var(--border);border-radius:8px;margin-top:6px;position:relative;overflow:hidden}.admin-media-preview img{object-fit:cover;width:100%;height:100px}.admin-copy-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;color:#fff;background:#0009;border:none;border-radius:6px;align-items:center;padding:5px;transition:all .15s;display:flex;position:absolute;top:6px;right:6px}.admin-copy-btn:hover{background:var(--accent)}.admin-design-group{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:20px}.admin-design-group:last-child{border-bottom:none}.admin-design-group h4{margin-top:0}.admin-preset-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.admin-preset-btn{background:var(--bg-secondary);border:1.5px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:10px;transition:all .15s;display:flex}.admin-preset-btn:hover{border-color:var(--text-dim)}.admin-preset-btn.active{border-color:var(--accent);background:var(--accent-glow)}.admin-preset-btn__colors{gap:3px;display:flex}.admin-preset-btn__colors span{border-radius:5px;width:18px;height:18px}.admin-preset-btn span:last-child{color:var(--text-secondary);font-size:.65rem;font-weight:600}.admin-seo-preview{margin-top:20px}.admin-seo-preview__card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:16px}.admin-seo-preview__title{color:#8ab4f8;margin-bottom:2px;font-size:.95rem;font-weight:600;line-height:1.3}.admin-seo-preview__url{color:#81c995;margin-bottom:4px;font-size:.7rem}.admin-seo-preview__desc{color:var(--text-secondary);font-size:.75rem;line-height:1.5}.admin-system-group{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:20px}.admin-system-group:last-child{border-bottom:none}.admin-system-group h4{margin-top:0}.admin-system-group--danger h4{color:#ef4444}.admin-system-actions{gap:10px;display:flex}.admin-system-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;color:var(--text-primary);border-radius:10px;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:.75rem;font-weight:600;transition:all .15s;display:flex}.admin-system-btn:hover{background:var(--bg-tertiary);border-color:var(--accent)}.admin-warning-box{color:#fca5a5;background:#ef44440a;border:1px solid #ef444426;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:12px;padding:12px;display:flex}.admin-warning-box strong{margin-bottom:2px;font-size:.8rem;display:block}.admin-warning-box p{opacity:.8;margin:0;font-size:.7rem}.admin-danger-btn{cursor:pointer;color:#fff;background:#ef4444;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 18px;font-size:.8rem;font-weight:700;transition:all .15s;display:flex}.admin-danger-btn:hover{background:#dc2626;transform:translateY(-1px)}@media (width<=768px){.admin-panel{border-radius:0;max-width:100%;height:100vh;max-height:100vh}.admin-sidebar{width:52px;padding:6px 5px}.admin-sidebar__footer{display:none}.admin-nav-item{justify-content:center;padding:9px}.admin-nav-item span{display:none}.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-info-cards,.admin-row-2col{grid-template-columns:1fr}.admin-preset-grid{grid-template-columns:repeat(2,1fr)}.admin-header{padding:10px 12px}.admin-header .admin-user{display:none}.admin-content{padding:16px 14px}.admin-overlay{padding:0}}@keyframes admFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.admin-trigger{cursor:pointer;color:#fff;z-index:1000;background:linear-gradient(135deg,#00d4ff,#7c3aed);border:none;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 20px #00d4ff4d}.admin-trigger:hover{transform:scale(1.1)rotate(45deg);box-shadow:0 8px 30px #00d4ff73}.admin-trigger:active{transform:scale(.95)}@media (width<=640px){.admin-trigger{border-radius:10px;width:40px;height:40px;bottom:16px;right:16px}}@media (width<=1200px){.side-rail{display:none}}@media (width<=1024px){.hero__grid,.about__grid{grid-template-columns:1fr;gap:40px}.work__grid{grid-template-columns:1fr}}@media (width<=768px){.container{padding:0 20px}.section{padding:64px 0}.navbar__links{display:none}.navbar__toggle{display:flex}.hero{padding:90px 0 50px}.hero__stats{gap:20px}.about__features{grid-template-columns:1fr}.project__body{padding:18px}.contact__card{border-radius:var(--radius-lg);padding:32px 20px}}@media (width<=480px){.hero__actions{flex-direction:column}.hero__actions .btn{justify-content:center;width:100%}.hero__stats{flex-wrap:wrap;gap:16px}.hero__stat{flex:1;min-width:100px}.contact__actions{flex-direction:column}.contact__actions .btn{justify-content:center;width:100%}}.py-patterns__header{margin-bottom:36px}.py-patterns__tabs{scrollbar-width:none;gap:6px;margin-bottom:20px;padding-bottom:4px;display:flex;overflow-x:auto}.py-patterns__tabs::-webkit-scrollbar{display:none}.py-patterns__body{grid-template-columns:220px 1fr;gap:20px;display:grid}@media (width<=900px){.py-patterns__body{grid-template-columns:1fr}.py-patterns__sidebar{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.py-patterns__sidebar::-webkit-scrollbar{display:none}}.py-patterns__list-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin-bottom:10px;font-size:11px;font-weight:700}@media (width<=900px){.py-patterns__list-label{display:none}}.py-patterns__main{min-width:0}.py-patterns__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.py-patterns__title-bar{align-items:center;gap:10px;display:flex}.py-patterns__title-bar h3{letter-spacing:-.03em;color:var(--text-primary);font-size:18px;font-weight:800}.py-patterns__badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-block}.py-patterns__controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.py-patterns__panels{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.py-patterns__panels{grid-template-columns:1fr}}.py-patterns__explanation{margin-top:16px}.py-tab{border-radius:var(--radius);color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:500;transition:all .2s;display:inline-flex}.py-tab:hover{border-color:var(--text-dim);color:var(--text-primary)}.py-tab--active{background:var(--accent);border-color:var(--accent);color:#fff}.py-tab--active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.py-pattern-item{border-radius:var(--radius);width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;margin-bottom:3px;padding:10px 14px;font-size:13px;transition:all .2s;display:flex}@media (width<=900px){.py-pattern-item{border:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0;width:auto;margin-bottom:0}}.py-pattern-item:hover{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary)}.py-pattern-item--active{background:var(--bg-secondary);border-color:var(--accent);color:var(--text-primary)}.py-pattern-item--active .py-pattern-item__name{color:var(--accent)}.py-pattern-item__info{flex-direction:column;gap:1px;display:flex}.py-pattern-item__name{font-size:13px;font-weight:600}.py-pattern-item__diff{text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:700}.py-control{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.py-control__btn{background:var(--bg-secondary);border:1px solid var(--border);width:26px;height:26px;color:var(--text-secondary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;transition:all .15s;display:flex}.py-control__btn:hover{border-color:var(--accent);color:var(--accent)}.py-control__value{color:var(--text-primary);text-align:center;min-width:22px;font-size:14px;font-weight:700}.py-control__regen,.py-control__explain{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.py-control__regen:hover,.py-control__explain:hover{border-color:var(--accent);color:var(--accent)}.py-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.py-panel__header{border-bottom:1px solid var(--border);background:var(--bg-primary);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.py-panel__label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.py-panel__copy{color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:500;transition:all .15s;display:inline-flex}.py-panel__copy:hover{border-color:var(--accent);color:var(--accent)}.py-panel--code,.py-panel--output{min-height:280px}.py-code{flex:1;padding:14px;font-family:JetBrains Mono,Fira Code,SF Mono,monospace;font-size:12px;line-height:1.7;overflow:auto}.py-code__line{white-space:pre;display:flex}.py-code__num{text-align:right;width:28px;color:var(--text-dim);-webkit-user-select:none;user-select:none;opacity:.4;margin-right:14px;font-size:11px;display:inline-block}.py-code__keyword{color:#c678dd}.py-code__func{color:#61afef}.py-code__string{color:#98c379}.py-code__number{color:#d19a66}.py-code__comment{color:#5c6370;font-style:italic}[data-theme=light] .py-code__keyword{color:#7c3aed}[data-theme=light] .py-code__func{color:#2563eb}[data-theme=light] .py-code__string{color:#16a34a}[data-theme=light] .py-code__number{color:#d97706}[data-theme=light] .py-code__comment{color:#9ca3af}.py-output{flex:1;justify-content:center;align-items:center;padding:18px;display:flex;overflow:auto}.py-output__text{font-family:JetBrains Mono,Fira Code,SF Mono,monospace;font-size:13px;line-height:1.4}.py-output__line{white-space:pre;justify-content:center;display:flex}.py-output__char{text-align:center;width:13px;color:var(--text-dim);display:inline-block}.py-output__char--active{color:var(--accent);text-shadow:0 0 8px #00d4ff66}.py-output__char--space{color:#0000}.py-output__grid{flex-direction:column;gap:2px;display:flex}.py-output__grid-row{justify-content:center;gap:2px;display:flex}.py-output__cell{border-radius:4px;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:3px 5px;font-family:JetBrains Mono,Fira Code,SF Mono,monospace;font-size:11px;font-weight:600;transition:all .2s;display:flex}.py-output__cell--block{background:var(--accent);color:#fff;min-width:32px}.py-output__cell--star{background:var(--accent);color:#fff;border-radius:50%;min-width:28px;min-height:28px}.py-output__cell--empty{background:0 0}.py-output__cell--num{background:hsl(var(--cell-hue,0), 50%, 15%);color:hsl(var(--cell-hue,0), 70%, 70%);border:1px solid hsl(var(--cell-hue,0), 40%, 25%)}.py-output__cell--num:hover{box-shadow:0 0 10px hsl(var(--cell-hue,0), 60%, 40%);transform:scale(1.1)}.py-output__sort{flex-direction:column;gap:14px;width:100%;display:flex}.py-output__bars{align-items:flex-end;gap:3px;height:180px;padding:0 6px;display:flex}.py-output__bar{background:linear-gradient(#7c3aed,#00d4ff);border-radius:3px 3px 0 0;flex:1;justify-content:center;align-items:flex-start;min-width:18px;padding-top:5px;transition:height .3s;display:flex;position:relative}.py-output__bar-label{color:#fff;font-size:10px;font-weight:700}.py-output__sort-controls{justify-content:center;align-items:center;gap:14px;display:flex}.py-output__step-btn{background:var(--bg-primary);border:1px solid var(--border);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.py-output__step-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.py-output__step-btn:disabled{opacity:.3;cursor:not-allowed}.py-output__step-info{color:var(--text-secondary);text-align:center;min-width:90px;font-size:12px;font-weight:600}.py-output__slider{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;width:100%;height:3px}.py-output__slider::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary);border-radius:50%;width:14px;height:14px;box-shadow:0 0 6px #00d4ff4d}.py-output__slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:2px solid var(--bg-primary);border-radius:50%;width:14px;height:14px}.py-explain__icon{display:none}.py-explain__content{background:var(--bg-secondary);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:16px 20px}.py-explain__content h4{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:13px;font-weight:700}.py-explain__content p{color:var(--text-secondary);font-size:14px;line-height:1.7}[data-theme=light] .py-output__cell--num{background:hsl(var(--cell-hue,0), 50%, 92%);color:hsl(var(--cell-hue,0), 70%, 35%);border-color:hsl(var(--cell-hue,0), 40%, 80%)}@media (width<=768px){.py-patterns__panels{grid-template-columns:1fr}.py-patterns__toolbar{flex-direction:column;align-items:flex-start}.py-patterns__controls{justify-content:flex-start;width:100%}}.market__header{margin-bottom:36px}.market__summary{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:28px;display:grid}@media (width<=900px){.market__summary{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.market__summary{grid-template-columns:1fr}}.market__card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:flex-start;gap:12px;padding:16px;transition:all .2s;display:flex}.market__card:hover{border-color:var(--border-glow);transform:translateY(-1px)}.market__card-icon{background:var(--accent-glow);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.market__card-content{flex-direction:column;gap:1px;min-width:0;display:flex}.market__card-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.market__card-value{color:var(--text-primary);text-transform:capitalize;letter-spacing:-.02em;font-size:16px;font-weight:700}.market__card-sub{color:var(--text-secondary);font-size:11px}.market__chart-area{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:20px;overflow:hidden}.market__toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;display:flex}.market__toggles{flex-wrap:wrap;gap:14px;display:flex}.market__toggle{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;font-weight:500;display:flex}.market__toggle input{display:none}.market__toggle-dot{border-radius:50%;width:8px;height:8px;transition:background .2s}.market__regen-btn{border-radius:var(--radius);background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;align-items:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.market__regen-btn:hover{border-color:var(--accent);color:var(--accent)}.market__chart-wrapper,.market__rsi-wrapper{position:relative}.market__chart-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;padding:8px 18px 0;font-size:11px;font-weight:700}.market__chart{width:100%;padding:0 4px}.market__rsi-chart{border-top:1px solid var(--border);width:100%;padding:0 4px 6px}.market__details{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.market__details{grid-template-columns:1fr}}.market__detail-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.market__detail-title{color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:14px;font-size:13px;font-weight:700;display:flex}.market__detail-title--clickable{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;padding:0;transition:color .2s}.market__detail-title--clickable:hover{color:var(--accent)}.market__detail-title--clickable svg:last-child{margin-left:auto}.market__sr-list{flex-direction:column;gap:6px;display:flex}.market__sr-item{border-radius:var(--radius);background:var(--bg-primary);border-left:3px solid;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.market__sr-item--support{border-left-color:#22c55e}.market__sr-item--resistance{border-left-color:#ef4444}.market__sr-type{color:var(--text-secondary);font-size:12px;font-weight:500}.market__sr-price{color:var(--text-primary);font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:700}.market__sr-count{color:var(--text-dim);font-size:11px}.market__pattern-list{flex-direction:column;gap:8px;display:flex}.market__pattern{border-radius:var(--radius);background:var(--bg-primary);border-left:3px solid;padding:10px 12px}.market__pattern--bullish{border-left-color:#22c55e}.market__pattern--bearish{border-left-color:#ef4444}.market__pattern--neutral{border-left-color:#f59e0b}.market__pattern-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.market__pattern-name{color:var(--text-primary);font-size:13px;font-weight:600}.market__pattern-signal{text-transform:uppercase;letter-spacing:.05em;background:var(--bg-secondary);border-radius:4px;padding:2px 7px;font-size:10px;font-weight:700}.market__pattern-desc{color:var(--text-secondary);font-size:12px;line-height:1.5}.market__empty{color:var(--text-dim);text-align:center;padding:18px;font-size:13px}.market__pattern--bullish .market__pattern-signal{color:#22c55e}.market__pattern--bearish .market__pattern-signal{color:#ef4444}.market__pattern--neutral .market__pattern-signal{color:#f59e0b}
