select{color:var(--text);background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px}select:focus{outline:none;box-shadow:0 0 0 3px #7c5cff59}:root{--bg-base: #0b0f19;--bg-elevated: #0f172a;--text: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .7);--muted: #9ca3af;--primary: #7c5cff;--primary-2: #22d3ee;--card-bg: rgba(255, 255, 255, .06);--card-border: rgba(255, 255, 255, .12);--shadow-strong: 0 20px 50px rgba(0, 0, 0, .55);--shadow-soft: 0 8px 24px rgba(0, 0, 0, .35);font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}a:hover{text-decoration:none}html.light{--bg-base: #374e72;--bg-elevated: #334155;--text: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .7);--muted: #9ca3af;--primary: #7c5cff;--primary-2: #22d3ee;--card-bg: rgba(255, 255, 255, .08);--card-border: rgba(255, 255, 255, .12);--shadow-strong: 0 20px 50px rgba(0, 0, 0, .4);--shadow-soft: 0 8px 24px rgba(0, 0, 0, .25)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;color:var(--text);background:radial-gradient(1200px 800px at 10% -10%,rgba(124,92,255,.25),transparent 60%),radial-gradient(900px 700px at 110% 20%,rgba(34,211,238,.18),transparent 60%),radial-gradient(600px 600px at -10% 100%,rgba(124,92,255,.14),transparent 55%),var(--bg-base);position:relative;overflow-x:hidden}body:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;opacity:.06;pointer-events:none}html.light body{background:radial-gradient(1200px 800px at 10% -10%,rgba(124,92,255,.2),transparent 60%),radial-gradient(900px 700px at 110% 20%,rgba(14,165,233,.15),transparent 60%),radial-gradient(600px 600px at -10% 100%,rgba(124,92,255,.18),transparent 55%),var(--bg-base)}.page{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}.topbar{position:sticky;top:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:18px 22px;z-index:10}.nav{display:flex;gap:10px;align-items:center;justify-self:center}.nav a{padding:8px 10px;border-radius:10px;color:var(--muted);transition:color .16s ease,background .16s ease}.nav a:hover{color:var(--text);background:var(--card-bg);border:1px solid var(--card-border)}.nav a.active{color:var(--text);background:linear-gradient(180deg,#ffffff14,#ffffff0a);border:1px solid var(--card-border);box-shadow:var(--shadow-soft)}.brand{font-weight:700;letter-spacing:.2px;font-size:16px;padding:10px 14px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-soft);justify-self:start}.brand:hover{transform:translateY(-2px);box-shadow:0 8px 30px #7c5cff40,0 2px 10px #22d3ee2e;border-color:#7c5cff59}.controls{display:flex;gap:10px;justify-self:end}.toggle{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid var(--card-border);background:var(--card-bg);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-soft);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.toggle:hover{transform:translateY(-1px);box-shadow:var(--shadow-strong)}.toggle:focus-visible,.brand:focus-visible,.nav a:focus-visible,.option-card:focus-visible,.toggle:active{outline:none;box-shadow:0 0 0 3px #7c5cff59}.toggle .dot{width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 0 0 3px #7c5cff26}.hero{display:grid;place-items:center;padding:40px 22px 26px}.hero-card{width:100%;max-width:980px;background:linear-gradient(180deg,#ffffff0f,#ffffff08);border:1px solid var(--card-border);border-radius:20px;padding:34px 26px;box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden;animation:popIn .42s cubic-bezier(.2,.8,.2,1) both}.hero-card:after{content:"";position:absolute;inset:-2px;background:radial-gradient(500px 200px at 0% 0%,rgba(124,92,255,.15),transparent 60%),radial-gradient(500px 200px at 100% 0%,rgba(34,211,238,.12),transparent 60%);pointer-events:none}.hello-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);background:var(--card-bg);border:1px solid var(--card-border);padding:8px 12px;border-radius:999px}.hero-title{font-size:clamp(40px,7vw,84px);margin:14px 0 6px;line-height:1.02;letter-spacing:-.02em}.accent{background:linear-gradient(135deg,var(--primary),var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{font-size:clamp(16px,2.3vw,20px);color:var(--muted);margin:0 0 18px}.options{margin-top:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}@media (max-width: 900px){.topbar{grid-template-columns:1fr auto;gap:8px;padding:14px}.nav{order:3;justify-self:start;overflow-x:auto;padding-bottom:6px}.hero-card{padding:24px 16px;border-radius:16px}.options{grid-template-columns:1fr}}@media (max-width: 480px){.brand{font-size:14px;padding:8px 10px}.toggle{padding:8px 10px;border-radius:10px}.icon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}.option-card{position:relative;overflow:hidden;background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:18px 18px 16px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.option-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-strong);border-color:#7c5cff59}.option-card:after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--primary-2));opacity:.9}.option-title{font-weight:700;margin:0 0 6px}.option-desc{color:var(--muted);font-size:14px;margin:0}.footer{padding:24px;color:var(--muted);text-align:center}.float{animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:translateY(12px) scale(.98);filter:blur(2px)}60%{opacity:1;transform:translateY(0) scale(1.008);filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.modal-backdrop{position:fixed;inset:0;background:#02061799;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;z-index:50}.modal-card{width:min(560px,92vw);background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:18px;box-shadow:var(--shadow-strong)}@keyframes langFlip{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}html.lang-change .anim-lang{animation:langFlip .32s ease both}.has-mouse-light{position:relative}.has-mouse-light:before{content:"";position:absolute;inset:-2px;pointer-events:none;z-index:0;background:radial-gradient(90px 90px at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.08),transparent 55%);transition:background-position 40ms linear,opacity .16s ease}.hero-card>*,.option-card>*{position:relative;z-index:1}.icon-grid{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}@media (max-width: 900px){.icon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.icon-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease;aspect-ratio:1;min-height:60px;max-width:60px}.icon-item span{font-size:13px}.pill{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--primary-2));color:#fff;box-shadow:0 6px 18px #7c5cff59;margin-bottom:8px}.icon-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.price{font-size:28px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--primary),var(--primary-2));-webkit-background-clip:text;background-clip:text;color:transparent}.select-wrap{position:relative;display:inline-block;width:100%}.select-wrap:after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;pointer-events:none;transform:translateY(-50%) rotate(45deg);border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transition:border-color .16s ease,opacity .16s ease}.select-wrap .select{width:100%;color:var(--text)!important;background-color:var(--card-bg)!important;border:1px solid var(--card-border)!important;border-radius:12px;padding:12px 36px 12px 12px;font:inherit;line-height:1.2;appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-soft),inset 0 0 0 1px #ffffff08;transition:border-color .18s ease,box-shadow .2s ease,transform .12s ease}.select-wrap .select:hover{border-color:#7c5cff59!important;box-shadow:var(--shadow-strong),inset 0 0 0 1px #ffffff0f}.select-wrap .select:focus{outline:none;box-shadow:0 0 0 3px #7c5cff59,var(--shadow-strong)}.select-wrap:focus-within:after{border-color:var(--primary)}.select-wrap .select::-ms-expand{display:none}.select-wrap .select option{background-color:var(--bg-elevated);color:var(--text)}.about-card{width:min(700px,92vw);background:linear-gradient(180deg,#ffffff14,#ffffff0a);border:1px solid var(--card-border);border-radius:18px;padding:20px;box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:popIn .42s cubic-bezier(.2,.8,.2,1) both}.about-title{margin:0 0 6px;font-size:clamp(22px,3.2vw,28px)}.about-sub{margin:0 0 10px;color:var(--muted)}.about-body{margin:0;line-height:1.55}.theme-switch{position:relative;display:inline-block;width:60px;height:34px}.theme-switch #theme-input{opacity:0;width:0;height:0}.theme-switch .slider{position:absolute;cursor:pointer;inset:0;background-color:#2196f3;transition:.4s;z-index:0;overflow:hidden}.theme-switch .sun-moon{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#ff0;transition:.4s}#theme-input:checked+.slider{background-color:#000}#theme-input:focus+.slider{box-shadow:0 0 1px #2196f3}#theme-input:checked+.slider .sun-moon{transform:translate(26px);background-color:#fff;animation:rotate-center .6s ease-in-out both}.theme-switch .moon-dot{opacity:0;transition:.4s;fill:gray}#theme-input:checked+.slider .sun-moon .moon-dot{opacity:1}.theme-switch .slider.round{border-radius:34px}.theme-switch .slider.round .sun-moon{border-radius:50%}#moon-dot-1{left:10px;top:3px;position:absolute;width:6px;height:6px;z-index:4}#moon-dot-2{left:2px;top:10px;position:absolute;width:10px;height:10px;z-index:4}#moon-dot-3{left:16px;top:18px;position:absolute;width:3px;height:3px;z-index:4}#light-ray-1,#light-ray-3,#light-ray-2{position:absolute;z-index:-1;fill:#fff;opacity:10%}#light-ray-1{left:-8px;top:-8px;width:43px;height:43px}#light-ray-2{left:-50%;top:-50%;width:55px;height:55px}#light-ray-3{left:-18px;top:-18px;width:60px;height:60px}.cloud-light,.cloud-dark{position:absolute;animation-name:cloud-move;animation-duration:6s;animation-iteration-count:infinite}.cloud-light{fill:#eee}.cloud-dark{fill:#ccc;animation-delay:1s}#cloud-1{left:30px;top:15px;width:40px}#cloud-2{left:44px;top:10px;width:20px}#cloud-3{left:18px;top:24px;width:30px}#cloud-4{left:36px;top:18px;width:40px}#cloud-5{left:48px;top:14px;width:20px}#cloud-6{left:22px;top:26px;width:30px}@keyframes cloud-move{0%{transform:translate(0)}40%{transform:translate(4px)}80%{transform:translate(-4px)}to{transform:translate(0)}}.theme-switch .stars{transform:translateY(-32px);opacity:0;transition:.4s}.theme-switch .star{fill:#fff;position:absolute;transition:.4s;animation-name:star-twinkle;animation-duration:2s;animation-iteration-count:infinite}#theme-input:checked+.slider .stars{transform:translateY(0);opacity:1}#star-1{width:20px;top:2px;left:3px;animation-delay:.3s}#star-2{width:6px;top:16px;left:3px}#star-3{width:12px;top:20px;left:10px;animation-delay:.6s}#star-4{width:18px;top:0;left:18px;animation-delay:1.3s}@keyframes star-twinkle{0%{transform:scale(1)}40%{transform:scale(1.2)}80%{transform:scale(.8)}to{transform:scale(1)}}@keyframes rotate-center{0%{transform:translate(26px) rotate(0)}to{transform:translate(26px) rotate(360deg)}}.portfolio-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--shadow-soft);max-width:800px;max-height:90vh;width:90vw;overflow:hidden;display:flex;flex-direction:column}.portfolio-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;border-bottom:1px solid var(--card-border)}.portfolio-tech-info{flex:1}.portfolio-title{font-size:28px;font-weight:700;margin:0 0 8px;color:var(--text)}.portfolio-description{color:var(--text-secondary);margin:0 0 12px;font-size:16px}.portfolio-meta{display:flex;gap:16px;flex-wrap:wrap}.portfolio-meta-item{font-size:14px;color:var(--text-secondary)}.portfolio-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.portfolio-close:hover{background:var(--card-border);color:var(--text)}.portfolio-content{padding:24px;overflow-y:auto;flex:1}.portfolio-section-title{font-size:20px;font-weight:600;margin:0 0 16px;color:var(--text)}.portfolio-empty{text-align:center;color:var(--text-secondary);font-style:italic;padding:40px 20px}.portfolio-projects{display:grid;gap:16px}.portfolio-project-card{background:var(--bg);border:1px solid var(--card-border);border-radius:12px;padding:20px;transition:all .2s ease}.portfolio-project-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #7c5cff1a}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.project-title{font-size:18px;font-weight:600;margin:0;color:var(--text);flex:1}.project-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.project-status{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.project-year{font-size:14px;color:var(--text-secondary)}.project-description{color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.project-technologies{margin-bottom:16px}.project-technologies strong{display:block;margin-bottom:8px;color:var(--text);font-size:14px}.tech-tags{display:flex;flex-wrap:wrap;gap:6px}.tech-tag{background:var(--primary);color:#0b1f14;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500}.project-links{display:flex;gap:12px;flex-wrap:wrap}.project-link{padding:8px 16px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500;transition:all .2s ease;border:1px solid var(--card-border)}.demo-link{background:var(--primary);color:#0b1f14;border-color:var(--primary)}.demo-link:hover{background:#7c5cffe6}.source-link{background:transparent;color:var(--text);border-color:var(--card-border)}.source-link:hover{background:var(--card-border);color:var(--text)}.clickable-icon{cursor:pointer;transition:all .2s ease;position:relative}.clickable-icon:hover{transform:scale(1.05);filter:brightness(1.1)}.clickable-icon:hover:after{content:"👆";position:absolute;top:-8px;right:-8px;font-size:12px;background:var(--primary);color:#0b1f14;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;animation:bounce .6s ease-in-out}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}60%{transform:translateY(-2px)}}.all-projects-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--shadow-soft);max-width:1200px;max-height:90vh;width:95vw;overflow:hidden;display:flex;flex-direction:column}.all-projects-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;border-bottom:1px solid var(--card-border)}.all-projects-title-section{flex:1}.all-projects-title{font-size:28px;font-weight:700;margin:0 0 8px;color:var(--text)}.all-projects-count{color:var(--text-secondary);margin:0;font-size:16px}.all-projects-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:8px;transition:all .2s ease}.all-projects-close:hover{background:var(--card-border);color:var(--text)}.all-projects-controls{padding:20px 24px;border-bottom:1px solid var(--card-border);background:var(--bg)}.all-projects-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;align-items:end}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-label{font-size:14px;font-weight:500;color:var(--text)}.filter-select{padding:8px 12px;border:1px solid var(--card-border);border-radius:8px;background:var(--card-bg);color:var(--text);font-size:14px;cursor:pointer;transition:all .2s ease}.filter-select:hover{border-color:var(--primary)}.filter-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #7c5cff33}.all-projects-content{padding:24px;overflow-y:auto;flex:1}.all-projects-empty{text-align:center;color:var(--text-secondary);font-style:italic;padding:60px 20px;font-size:18px}.all-projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}.all-projects-card{background:var(--bg);border:1px solid var(--card-border);border-radius:12px;padding:20px;transition:all .2s ease}.all-projects-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #7c5cff1a;transform:translateY(-2px)}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.project-card-title{font-size:18px;font-weight:600;margin:0;color:var(--text);flex:1;line-height:1.3}.project-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.project-card-status{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.project-card-year{font-size:14px;color:var(--text-secondary)}.project-card-description{color:var(--text-secondary);margin:0 0 16px;line-height:1.5;font-size:14px}.project-card-technologies{margin-bottom:16px}.project-card-technologies .tech-tags{display:flex;flex-wrap:wrap;gap:6px}.project-card-technologies .tech-tag{background:var(--primary);color:#0b1f14;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:500}.project-card-links{display:flex;gap:12px;flex-wrap:wrap}.project-card-links .project-link{padding:8px 16px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500;transition:all .2s ease;border:1px solid var(--card-border)}.project-card-links .demo-link{background:var(--primary);color:#0b1f14;border-color:var(--primary)}.project-card-links .demo-link:hover{background:#7c5cffe6}.project-card-links .source-link{background:transparent;color:var(--text);border-color:var(--card-border)}.project-card-links .source-link:hover{background:var(--card-border);color:var(--text)}.glow-ring{position:absolute;inset:-1px;border-radius:22px;pointer-events:none;background:radial-gradient(800px 120px at 50% 0%,rgba(124,92,255,.18),transparent 60%)}.shine{position:absolute;top:-40px;left:-40px;width:200px;height:200px;background:radial-gradient(closest-side,rgba(255,255,255,.22),transparent);filter:blur(10px);transform:rotate(15deg)}
