.login-page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;background:radial-gradient(1200px 600px at 50% -10%,var(--login-glow) 0%,transparent 60%),var(--bg)}.login-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:40px 36px 32px;box-shadow:var(--shadow-md);text-align:center}.login-card__brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px}.login-card__logo{width:36px;height:36px;border-radius:10px;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center}.login-card__brand-name{font-weight:700;font-size:18px;letter-spacing:-.01em}.login-card__title{margin:4px 0 6px;font-size:28px;letter-spacing:-.02em}.login-card__subtitle{margin:0 0 28px;color:var(--text-muted);font-size:15px}.login-card__back{margin-top:18px;background:transparent;border:none;color:var(--text-muted);font-size:14px;padding:6px 10px;border-radius:6px}.login-card__back:hover{color:var(--text);background:var(--surface-muted)}.login-actions{display:flex;flex-direction:column;gap:12px}.login-actions__primary,.login-actions__secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 18px;border-radius:12px;font-size:15px;font-weight:600;border:1px solid transparent;transition:transform .05s ease,background .15s ease,border-color .15s ease}.login-actions__primary{background:var(--cta-bg);color:#fff}.login-actions__primary:hover{background:var(--cta-bg-hover)}.login-actions__primary:active{transform:translateY(1px)}.login-actions__secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.login-actions__secondary:hover{background:var(--surface-muted)}.password-prompt{display:flex;flex-direction:column;text-align:left}.password-prompt__label{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:8px;letter-spacing:.02em;text-transform:uppercase}.password-prompt__field{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;padding:6px 6px 6px 14px;transition:border-color .15s ease,box-shadow .15s ease}.password-prompt__field:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.password-prompt__field.is-error{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.password-prompt__icon{color:var(--text-muted);flex-shrink:0}.password-prompt__field input{flex:1;border:none;outline:none;background:transparent;font-size:15px;padding:10px 0;color:var(--text)}.password-prompt__submit{width:36px;height:36px;border-radius:9px;border:none;background:var(--cta-bg);color:#fff;display:inline-flex;align-items:center;justify-content:center}.password-prompt__submit:hover{background:var(--cta-bg-hover)}.password-prompt__error{margin:8px 2px 0;color:#dc2626;font-size:13px}.password-prompt__hint{margin:14px 2px 0;color:var(--text-muted);font-size:13px}.login-page__theme-toggle{position:absolute;top:20px;right:20px;width:36px;height:36px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease}.login-page__theme-toggle:hover{background:var(--surface-muted)}.login-page__footer{margin-top:24px;color:var(--text-muted);font-size:13px}.home{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.home__main{width:100%;max-width:960px;margin:0 auto;padding:40px 20px 24px}.site-header{position:sticky;top:0;z-index:10;background:var(--header-bg);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border)}.site-header__inner{max-width:1100px;margin:0 auto;padding:14px 20px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}.site-header__brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em}.site-header__logo{width:30px;height:30px;border-radius:8px;background:var(--primary);color:#fff;display:inline-flex;align-items:center;justify-content:center}.site-header__nav{display:flex;justify-content:center;gap:28px}.site-header__nav a,.site-header__nav .nav-link{position:relative;color:var(--text);font-size:15px;font-weight:500;padding:6px 4px 8px;transition:color .18s ease}.site-header__nav a:hover,.site-header__nav .nav-link:hover{color:var(--primary)}.site-header__nav button.nav-link{background:none;border:none;cursor:pointer;font-family:inherit;line-height:inherit}.site-header__nav .nav-link--active{color:var(--primary);font-weight:600}.nav-active-line{position:absolute;bottom:0;left:0;right:0;height:2px;border-radius:2px;background:var(--primary);box-shadow:0 0 8px color-mix(in srgb,var(--primary) 70%,transparent),0 0 18px color-mix(in srgb,var(--primary) 35%,transparent)}.site-header__actions{display:inline-flex;align-items:center;gap:10px}.site-header__icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;color:var(--text);transition:background .18s ease,border-color .18s ease,transform .22s cubic-bezier(.34,1.56,.64,1)}.site-header__icon-btn:hover{background:var(--surface-muted);border-color:var(--primary);transform:translateY(-1px) scale(1.06)}.site-header__lang-label{font-size:12px;font-weight:600;letter-spacing:.04em}.hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 0 56px;border-bottom:1px solid var(--border)}.hero__greeting{display:inline-block;margin-bottom:18px;background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600}.hero__avatar{width:200px;height:200px;border-radius:50%;overflow:hidden;background:#eef0f4;box-shadow:var(--shadow-sm)}.hero__avatar img{width:100%;height:100%;display:block;object-fit:cover}.hero__title{margin:28px 0 10px;font-size:42px;letter-spacing:-.02em;line-height:1.1}.hero__role{margin:0 0 14px;color:var(--primary);font-size:22px;font-weight:600}.hero__tagline{margin:0 0 28px;color:var(--text-muted);font-size:16px}.hero__cta{display:inline-flex;align-items:center;gap:10px;background:var(--cta-bg);color:#fff;padding:14px 24px;border-radius:12px;font-weight:600;font-size:15px;transition:background .15s ease}.hero__cta:hover{background:var(--cta-bg-hover)}.section-heading{display:flex;flex-direction:column;align-items:center;margin:56px 0 28px}.section-heading h2{margin:0 0 10px;font-size:26px;letter-spacing:-.01em}.section-heading__rule{width:48px;height:3px;border-radius:2px;background:var(--primary)}.skill-grid{display:grid;gap:20px}.skill-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.skill-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:calc(66.66% + 7px)}.tech-card{position:relative;background:color-mix(in srgb,var(--surface) 86%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:28px;padding:30px 18px 26px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:var(--shadow-sm);overflow:hidden;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease}.tech-card:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background:radial-gradient(circle at 50% 50%,rgba(140,165,210,.24),transparent 65%);opacity:0;transform:scale(.82);transition:opacity .26s ease,transform .26s ease;pointer-events:none}.tech-card:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));box-shadow:var(--shadow-md)}.tech-card:hover:before{opacity:1;transform:scale(1)}.tech-card__icon-shell{width:62px;height:62px;border-radius:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);background:linear-gradient(160deg,#fff3,#ffffff0a),color-mix(in srgb,var(--surface-muted) 78%,transparent);border:1px solid color-mix(in srgb,var(--border-strong) 75%,transparent);box-shadow:inset 0 1px #ffffff59,0 10px 24px -18px #0000008c;transition:transform .26s cubic-bezier(.34,1.56,.64,1),color .22s ease}.tech-card:hover .tech-card__icon-shell{color:color-mix(in srgb,var(--primary) 78%,var(--text));transform:translateY(-2px)}.tech-card__label{margin:0;font-weight:600;font-size:15px;text-align:center;letter-spacing:-.01em}.tech-card--leveling .tech-card__icon-shell{border-style:dashed}.contact-cta{margin-top:48px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:24px;display:flex;align-items:flex-start;gap:18px;box-shadow:var(--shadow-sm)}.contact-cta__icon{width:52px;height:52px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.contact-cta__body{flex:1}.contact-cta__body h3{margin:0 0 4px;font-size:17px}.contact-cta__body p{margin:0 0 14px;color:var(--text-muted);font-size:14px}.contact-cta__form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px}.contact-cta__form input{border:1px solid var(--border-strong);background:var(--surface);border-radius:10px;padding:11px 14px;font-size:14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.contact-cta__form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.contact-cta__form button{display:inline-flex;align-items:center;gap:8px;background:var(--cta-bg);color:#fff;border:none;border-radius:10px;padding:0 18px;font-weight:600;font-size:14px}.contact-cta__form button:hover{background:var(--cta-bg-hover)}.site-footer{margin-top:36px;padding:20px 16px 28px;text-align:center;border-top:1px solid var(--border)}.site-footer__socials{display:inline-flex;align-items:center;gap:14px;margin-bottom:10px}.site-footer__icon{color:var(--text-muted);width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;transition:color .2s ease,background .2s ease,transform .25s cubic-bezier(.34,1.56,.64,1)}.site-footer__icon:hover{color:var(--text);background:var(--surface);transform:translateY(-3px) scale(1.12)}.site-footer__icon--linkedin{background:#0a66c2;color:#fff}.site-footer__icon--linkedin:hover{background:#0958a8;color:#fff}.site-footer__copy{margin:0;color:var(--text-muted);font-size:13px}@media (max-width: 720px){.site-header__nav{display:none}.site-header__inner{grid-template-columns:1fr auto}.hero__title{font-size:32px}.skill-grid,.skill-grid--2,.skill-grid--3{grid-template-columns:1fr;max-width:none}.contact-cta{flex-direction:column}.contact-cta__form{grid-template-columns:1fr}.contact-cta__form button{padding:12px 18px;justify-content:center}}:root{--about-bg-1: color-mix(in srgb, var(--bg) 90%, #0f172a 10%);--about-bg-2: color-mix(in srgb, var(--bg) 82%, #1e293b 18%);--about-card-bg: color-mix(in srgb, var(--surface) 86%, transparent);--about-rail: color-mix(in srgb, var(--border-strong) 50%, transparent);--about-gap: clamp(7.5rem, 15vw, 12rem);--about-avatar: clamp(9rem, 16vw, 13rem)}.about-page{min-height:100vh;background:radial-gradient(70vw 60vh at 8% 12%,rgba(96,165,250,.14),transparent 72%),radial-gradient(72vw 62vh at 95% 85%,rgba(245,158,11,.16),transparent 76%),linear-gradient(180deg,var(--about-bg-1),var(--about-bg-2))}.about-page__main{width:min(1120px,100%);margin:0 auto;padding:clamp(1.4rem,4vh,2.4rem) clamp(1rem,3vw,2rem) clamp(3rem,7vh,5rem)}.about-page__start{min-height:clamp(78vh,88vh,92vh);display:grid;align-content:center;justify-items:center;text-align:center;gap:clamp(.8rem,1.8vh,1.2rem)}.about-page__start-avatar{width:clamp(14rem,30vw,25rem);height:clamp(14rem,30vw,25rem);border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid color-mix(in srgb,var(--border-strong) 80%,transparent);box-shadow:0 18px 45px -24px #0000009e,inset 0 0 0 1px #ffffff17}.about-page__start-avatar img{width:100%;height:100%;display:block;object-fit:contain;object-position:center center}.about-page__start-title{margin:0;font-size:clamp(2rem,8vw,5rem);line-height:.95;letter-spacing:-.04em}.about-page__start-subtitle{margin:0;color:color-mix(in srgb,var(--text-muted) 88%,transparent);font-size:clamp(.95rem,2vw,1.2rem)}.about-page__timeline{position:relative;padding-top:clamp(2rem,6vh,3rem)}.about-page__avatar-sticky{position:sticky;top:calc(50svh - (var(--about-avatar) / 2));height:0;z-index:18;pointer-events:none}.about-page__avatar{position:relative;left:50%;width:var(--about-avatar);height:var(--about-avatar);border-radius:999px;overflow:visible}.about-page__avatar-glow{position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;border-radius:999px;background:transparent;pointer-events:none;animation:avatar-glow-pulse 3.5s ease-in-out infinite}@keyframes avatar-glow-pulse{0%,to{box-shadow:none;opacity:0}50%{box-shadow:0 0 34px 6px #5ba4fb38,0 0 70px 18px #5ba4fb17;opacity:1}}[data-theme=light] .about-page__avatar-glow{animation:none}.about-page__avatar-inner{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;overflow:hidden;border:1px solid color-mix(in srgb,var(--border-strong) 82%,transparent);box-shadow:0 28px 60px -26px #000000b3,inset 0 0 0 1px #ffffff14}.about-page__avatar-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover;object-position:50% 22%}.about-page__age-badge{position:absolute;bottom:calc(100% + .45rem);right:0;display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1}.about-page__age-num{font-size:clamp(1.3rem,2.6vw,2rem);font-weight:700;letter-spacing:-.03em}.about-page__age-label{margin-top:.1rem;font-size:clamp(.52rem,1vw,.66rem);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--text-muted) 84%,transparent)}.about-page__rail{position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translate(-50%);background:var(--about-rail);overflow:hidden}.about-page__rail-fill{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(to bottom,var(--primary),color-mix(in srgb,var(--primary) 60%,transparent));transform-origin:top}.about-page__list{list-style:none;margin:0;padding:0;display:grid;gap:clamp(2.5rem,9vh,5.5rem)}.about-page__station{position:relative;display:grid;grid-template-columns:1fr 1fr}.about-page__station:before{content:"";position:absolute;left:50%;top:1.6rem;width:.78rem;height:.78rem;margin-left:-.39rem;border-radius:999px;background:var(--text);box-shadow:0 0 0 .32rem color-mix(in srgb,var(--bg) 88%,transparent),0 0 18px #ffffff4d;transition:background .3s ease,box-shadow .3s ease}.about-page__station:has(.about-page__card--active):before{background:var(--primary);box-shadow:0 0 0 .32rem color-mix(in srgb,var(--bg) 88%,transparent),0 0 18px color-mix(in srgb,var(--primary) 60%,transparent)}.about-page__station--left .about-page__card{grid-column:1;margin-right:var(--about-gap)}.about-page__station--right .about-page__card{grid-column:2;margin-left:var(--about-gap)}.about-page__card{border-radius:clamp(1.1rem,2vw,1.6rem);padding:clamp(1.25rem,2.7vw,1.9rem);background:var(--about-card-bg);border:1px solid color-mix(in srgb,var(--border) 88%,transparent);box-shadow:0 14px 34px -22px #00000094,inset 0 1px #ffffff12;backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);transition:box-shadow .4s ease}.about-page__card--active{box-shadow:0 18px 42px -20px #0000009e,0 0 0 1px color-mix(in srgb,var(--primary) 28%,transparent),0 0 28px color-mix(in srgb,var(--primary) 12%,transparent),inset 0 1px #ffffff12}.about-page__year{margin:0 0 .55rem;font-size:clamp(.66rem,.92vw,.82rem);letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--primary) 80%,var(--text-muted));font-variant-numeric:tabular-nums}.about-page__card-title{margin:0;font-size:clamp(1.05rem,1.9vw,1.38rem);letter-spacing:-.02em}.about-page__card-org{margin:.5rem 0 0;color:var(--text-muted);font-size:clamp(.82rem,1.22vw,.94rem)}.about-page__card-desc{margin:.75rem 0 0;color:color-mix(in srgb,var(--text) 88%,transparent);font-size:clamp(.92rem,1.34vw,1.02rem);line-height:1.6}.about-page__tags{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.about-page__tags li{padding:.26rem .6rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-strong) 68%,transparent);background:color-mix(in srgb,var(--surface-muted) 76%,transparent);color:color-mix(in srgb,var(--text-muted) 92%,transparent);font-size:clamp(.66rem,1vw,.74rem)}.electric-border-card{--eb-angle: 0deg}[data-theme=dark] .electric-border-card{border:1.5px solid transparent;background-image:linear-gradient(var(--about-card-bg),var(--about-card-bg)),conic-gradient(from var(--eb-angle),transparent 0deg,transparent 112deg,rgba(96,165,250,.94) 154deg,rgba(167,139,250,.98) 183deg,rgba(245,158,11,.9) 212deg,transparent 258deg,transparent 360deg);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:electric-ring 5.8s linear infinite}[data-theme=dark] .electric-border-card.about-page__card--active{background-image:linear-gradient(var(--about-card-bg),var(--about-card-bg)),conic-gradient(from var(--eb-angle),transparent 0deg,transparent 80deg,rgba(96,165,250,1) 130deg,rgba(167,139,250,1) 168deg,rgba(245,158,11,.95) 200deg,transparent 240deg,transparent 360deg)}[data-theme=light] .electric-border-card{border:1px solid color-mix(in srgb,var(--border-strong) 84%,transparent);animation:none}@property --eb-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes electric-ring{to{--eb-angle: 360deg}}@media (max-width: 960px){.about-page__main{width:min(860px,100%)}.about-page__rail{left:1.1rem;transform:none}.about-page__station{grid-template-columns:1fr}.about-page__station:before{left:1.1rem;margin-left:-.39rem}.about-page__station--left .about-page__card,.about-page__station--right .about-page__card{grid-column:1;margin:0 0 0 2.2rem}.about-page__avatar-sticky{top:clamp(5.2rem,10vh,6.2rem)}.about-page__avatar{left:clamp(.75rem,4vw,1.2rem);width:clamp(6.7rem,26vw,8.8rem);height:clamp(6.7rem,26vw,8.8rem)}}@media (prefers-reduced-motion: reduce){.about-page__avatar-glow,[data-theme=dark] .electric-border-card{animation:none}}:root,[data-theme=light]{--thumb-bg: #0f172a;--thumb-panel: #1f2a44;--thumb-line: #cbd5e1;--thumb-muted: #475569;--thumb-accent: #60a5fa;--thumb-accent-2: #818cf8}[data-theme=dark]{--thumb-bg: #060b18;--thumb-panel: #131c33;--thumb-line: #cbd5e1;--thumb-muted: #475569;--thumb-accent: #60a5fa;--thumb-accent-2: #a78bfa}.projects-page__head{margin:8px 0 24px}.projects-page__title{margin:0 0 6px;font-size:36px;letter-spacing:-.02em}.projects-page__subtitle{margin:0;color:var(--text-muted);font-size:15px}.project-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 24px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;width:fit-content}.project-tabs__tab{border:0;background:transparent;color:var(--text-muted);padding:9px 18px;font-size:14px;font-weight:600;border-radius:10px;transition:background .15s ease,color .15s ease}.project-tabs__tab:hover{color:var(--text)}.project-tabs__tab.is-active{background:var(--primary);color:#fff}.projects-list{display:grid;grid-template-columns:1fr;gap:18px}.projects-list__empty{color:var(--text-muted);text-align:center;padding:32px 0}.project-card{display:grid;grid-template-columns:220px 1fr auto;gap:22px;align-items:center;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.project-thumb{border-radius:12px;overflow:hidden;aspect-ratio:16 / 10;background:var(--thumb-bg);border:1px solid var(--border)}.project-thumb svg{display:block;width:100%;height:100%}.project-thumb--image img{display:block;width:100%;height:100%;object-fit:cover}.project-card__title{margin:0 0 6px;font-size:19px;letter-spacing:-.01em}.project-card__summary{margin:0 0 14px;color:var(--text-muted);font-size:14px;line-height:1.55}.project-card__tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.project-card__tag{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:500;color:var(--text)}.project-card__tag-dot{width:6px;height:6px;border-radius:50%;background:var(--primary)}.project-card__arrow{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);transition:color .15s ease,transform .15s ease,background .15s ease}.project-card:hover .project-card__arrow{color:var(--primary);transform:translate(2px);background:var(--primary-soft)}.projects-page__github{margin:28px auto 0;display:inline-flex;align-items:center;gap:10px;padding:14px 22px;background:var(--surface);border:1px solid var(--border);border-radius:14px;color:var(--text);font-size:14px;box-shadow:var(--shadow-sm);transition:border-color .15s ease,transform .15s ease;width:fit-content}.projects-page__github:hover{border-color:var(--primary);transform:translateY(-1px)}.projects-page__github strong{color:var(--primary);font-weight:600}.projects-page>.projects-page__github,.projects-page .projects-page__github{display:flex;margin-left:auto;margin-right:auto}.project-detail__back{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:14px;margin-bottom:18px;transition:color .15s ease}.project-detail__back:hover{color:var(--primary)}.project-detail__hero{display:grid;grid-template-columns:240px 1fr;gap:24px;align-items:center;padding:8px 0 24px;border-bottom:1px solid var(--border)}.project-detail__thumb{aspect-ratio:16 / 10}.project-detail__title{margin:0 0 8px;font-size:30px;letter-spacing:-.02em}.project-detail__summary{margin:0 0 14px;color:var(--text-muted);font-size:15px;line-height:1.55}.project-detail__tags{margin-top:10px}.project-detail__about{margin:28px 0 8px}.project-detail__section-title{margin:0 0 12px;font-size:18px;letter-spacing:-.01em}.project-detail__text{margin:0;color:var(--text-muted);font-size:15px;line-height:1.65}.project-detail__split{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;margin:28px 0 8px}.project-detail__split>section:first-child{grid-column:1 / -1}.arch-graph{border:1px solid var(--border);border-radius:28px;background:color-mix(in srgb,var(--surface) 90%,transparent);box-shadow:var(--shadow-sm);overflow:hidden;backdrop-filter:blur(12px) saturate(145%);-webkit-backdrop-filter:blur(12px) saturate(145%);min-height:420px}.arch-graph__svg{display:block;width:100%;height:auto;aspect-ratio:16 / 8.2}.arch-graph__canvas{fill:color-mix(in srgb,var(--surface-muted) 80%,transparent);stroke:color-mix(in srgb,var(--border-strong) 80%,transparent);stroke-width:1}.arch-graph__grid-line{fill:none;stroke:color-mix(in srgb,var(--border) 55%,transparent);stroke-width:.8;opacity:.65}.arch-graph__edge{fill:none;stroke:color-mix(in srgb,var(--text-muted) 55%,var(--border));stroke-width:1.8;stroke-linecap:round;opacity:.72}.arch-graph__edge-flow{fill:none;stroke:color-mix(in srgb,var(--primary) 80%,#8eb7ff);stroke-width:2;stroke-linecap:round;stroke-dasharray:7 13;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--primary) 40%,transparent))}.arch-graph__arrow{fill:color-mix(in srgb,var(--text-muted) 80%,var(--border-strong))}.arch-graph__node{fill:color-mix(in srgb,var(--surface) 88%,transparent);stroke:color-mix(in srgb,var(--border-strong) 70%,transparent);stroke-width:1.2}.arch-graph__node-icon-shell{fill:color-mix(in srgb,var(--surface-muted) 90%,transparent);stroke:color-mix(in srgb,var(--border-strong) 80%,transparent);stroke-width:1}.arch-graph__node-icon{color:color-mix(in srgb,var(--primary) 76%,var(--text))}.arch-graph__node-type{fill:color-mix(in srgb,var(--text-muted) 90%,var(--primary));font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.arch-graph__node-label{fill:var(--text);font-size:18px;font-weight:700;letter-spacing:-.01em}.arch-graph__node-sub{fill:var(--text-muted);font-size:14px;font-weight:500}[data-theme=dark] .arch-graph{border-color:color-mix(in srgb,var(--border-strong) 70%,transparent);box-shadow:0 22px 58px -35px #000000d9}.project-detail__features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.project-detail__features li{display:flex;align-items:center;gap:10px;font-size:14px}.project-detail__check{width:22px;height:22px;border-radius:50%;background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.project-detail__highlight{margin-top:28px;padding:18px 22px;border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-md);background:var(--surface)}.project-detail__highlight h3{margin:0 0 4px;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary)}.project-detail__highlight p{margin:0;color:var(--text);font-size:15px}.project-detail__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.project-detail__cta{display:inline-flex;align-items:center;gap:8px;background:var(--cta-bg);color:var(--cta-fg);padding:12px 20px;border-radius:12px;font-weight:600;font-size:14px;transition:background .15s ease,transform .15s ease}.project-detail__cta:hover{background:var(--cta-bg-hover);transform:translateY(-1px)}.project-detail__cta--ghost{background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.project-detail__cta--ghost:hover{background:var(--surface-muted)}@media (max-width: 720px){.projects-page__title{font-size:28px}.project-card{grid-template-columns:1fr;gap:14px}.project-card__arrow{display:none}.project-detail__hero{grid-template-columns:1fr}.project-detail__split{grid-template-columns:1fr;gap:22px}.project-detail__split>section:first-child{grid-column:auto}.project-detail__title{font-size:24px}.arch-graph{min-height:300px}}.skills-page__head{margin:8px 0 24px}.skills-page__title{margin:0 0 6px;font-size:36px;letter-spacing:-.02em}.skills-page__subtitle{margin:0;color:var(--text-muted);font-size:15px}.skill-tabs{display:flex;gap:6px;margin:18px 0 28px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;width:fit-content;max-width:100%}.skill-tabs__tab{border:0;background:transparent;color:var(--text-muted);padding:9px 18px;font-size:14px;font-weight:600;border-radius:10px;white-space:nowrap;transition:background .15s ease,color .15s ease}.skill-tabs__tab:hover{color:var(--text)}.skill-tabs__tab.is-active{background:var(--primary);color:#fff}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.skills-grid__empty{grid-column:1 / -1;color:var(--text-muted);text-align:center;padding:40px 0;font-size:15px}@keyframes skill-card-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.skill-card{padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:0;opacity:0;animation:skill-card-enter .35s ease forwards;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.skill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.skill-card__header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.skill-card__name{font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--text)}.skill-card__desc{margin:0 0 12px;font-size:13px;color:var(--text-muted);line-height:1.55}.skill-card__badge{flex-shrink:0;display:inline-block;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap}.skill-card__badge--basic{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border-strong)}.skill-card__badge--good{background:#dbeafe;color:#1d4ed8}.skill-card__badge--very-good{background:#ede9fe;color:#6d28d9}.skill-card__badge--expert{background:#fef9c3;color:#854d0e}.skill-card__badge--master{background:#dcfce7;color:#166534}[data-theme=dark] .skill-card__badge--good{background:#1d4ed82e;color:#93c5fd}[data-theme=dark] .skill-card__badge--very-good{background:#6d28d92e;color:#c4b5fd}[data-theme=dark] .skill-card__badge--expert{background:#854d0e2e;color:#fde68a}[data-theme=dark] .skill-card__badge--master{background:#1665342e;color:#86efac}.skill-bar{display:flex;gap:5px;margin-top:auto;padding-top:14px}@keyframes seg-fill{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.skill-bar__seg{flex:1;height:5px;border-radius:3px;background:var(--border)}.skill-bar__seg.is-filled{background:var(--primary);transform-origin:left;opacity:0;animation:seg-fill .4s cubic-bezier(.34,1.56,.64,1) forwards}.skill-card--level-3 .skill-bar__seg.is-filled{box-shadow:0 0 5px color-mix(in srgb,var(--primary) 40%,transparent)}.skill-card--level-4 .skill-bar__seg.is-filled,.skill-card--level-5 .skill-bar__seg.is-filled{box-shadow:0 0 8px color-mix(in srgb,var(--primary) 65%,transparent)}@media (max-width: 860px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 540px){.skills-page__title{font-size:28px}.skill-tabs{overflow-x:auto;scrollbar-width:none;border-radius:12px}.skill-tabs::-webkit-scrollbar{display:none}.skills-grid{grid-template-columns:1fr}}.contact-page{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(80vw 70vh at 10% 20%,rgba(37,99,235,.1),transparent 65%),radial-gradient(60vw 55vh at 88% 78%,rgba(124,58,237,.08),transparent 65%),var(--bg)}.contact-page__main{width:min(1100px,100%);margin:0 auto;padding:clamp(2rem,5vh,3.5rem) clamp(1rem,3vw,2rem) clamp(3rem,8vh,5rem)}.contact-page__orb{position:absolute;border-radius:999px;pointer-events:none;filter:blur(72px);z-index:0}.contact-page__orb--1{width:clamp(260px,38vw,500px);height:clamp(260px,38vw,500px);top:-6%;right:-10%;background:radial-gradient(circle,rgba(37,99,235,.2),transparent 70%);animation:cp-orb-float 9s ease-in-out infinite alternate}.contact-page__orb--2{width:clamp(180px,28vw,360px);height:clamp(180px,28vw,360px);bottom:18%;left:-7%;background:radial-gradient(circle,rgba(124,58,237,.15),transparent 70%);animation:cp-orb-float 12s ease-in-out infinite alternate-reverse}@keyframes cp-orb-float{0%{transform:translateY(0) scale(1)}to{transform:translateY(-20px) scale(1.05)}}.contact-page__hero{position:relative;text-align:center;padding:clamp(3rem,8vh,5.5rem) 1rem clamp(2.5rem,6vh,4rem)}.contact-page__hero-inner{position:relative;z-index:2}.contact-page__badge{display:inline-flex;align-items:center;gap:9px;background:var(--primary-soft);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 28%,transparent);border-radius:999px;padding:6px 18px 6px 10px;font-size:13px;font-weight:600;letter-spacing:.02em;margin-bottom:clamp(1rem,2.5vh,1.6rem)}.contact-page__badge-dot{width:8px;height:8px;border-radius:50%;background:var(--primary);flex-shrink:0;animation:cp-badge-pulse 2.2s ease-in-out infinite}@keyframes cp-badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.contact-page__hero-title{margin:0 0 clamp(.7rem,1.8vh,1.1rem);font-size:clamp(2.1rem,6.5vw,4.2rem);line-height:1.07;letter-spacing:-.035em;background:linear-gradient(140deg,var(--text) 0%,color-mix(in srgb,var(--text) 70%,var(--primary)) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.contact-page__hero-sub{margin:0 auto;max-width:520px;color:var(--text-muted);font-size:clamp(.93rem,1.9vw,1.08rem);line-height:1.68}.contact-page__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(1.2rem,2.4vw,2rem);align-items:start}.contact-info-card{position:relative;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-radius:var(--radius-xl);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow-md);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);overflow:hidden}.contact-info-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 55%,#7c3aed));border-radius:var(--radius-xl) var(--radius-xl) 0 0}.contact-info-card__heading{margin:0 0 clamp(1.1rem,2.4vh,1.5rem);font-size:clamp(1.05rem,1.9vw,1.25rem);letter-spacing:-.02em}.contact-info-card__items{display:flex;flex-direction:column;gap:clamp(.8rem,1.7vh,1.1rem)}.contact-info-item{display:flex;align-items:flex-start;gap:14px}.contact-info-item__icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--primary-soft);color:var(--primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .24s cubic-bezier(.34,1.56,.64,1)}.contact-info-item:hover .contact-info-item__icon{transform:scale(1.1) translateY(-1px)}.contact-info-item__text{display:flex;flex-direction:column;gap:3px;min-width:0;padding-top:2px}.contact-info-item__label{font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);line-height:1}.contact-info-item__value{font-size:13.5px;font-weight:500;color:var(--text);word-break:break-all;line-height:1.4}.contact-info-item__value--link{color:var(--primary);transition:opacity .15s ease}.contact-info-item__value--link:hover{opacity:.75;text-decoration:underline;text-underline-offset:3px}.contact-info-card__divider{height:1px;background:var(--border);margin:clamp(1rem,2vh,1.3rem) 0}.contact-info-card__social-label{margin:0 0 clamp(.55rem,1.2vh,.8rem);font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted)}.contact-social-links{display:flex;flex-direction:column;gap:9px}.contact-social-link{display:flex;align-items:center;gap:12px;padding:11px 15px;border-radius:var(--radius-md);border:1px solid var(--border);background:color-mix(in srgb,var(--surface-muted) 72%,transparent);color:var(--text);font-size:13.5px;font-weight:500;transition:background .2s ease,border-color .2s ease,color .2s ease}.contact-social-link__icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;background:color-mix(in srgb,var(--border-strong) 55%,transparent);flex-shrink:0;transition:background .2s ease}.contact-social-link:hover{background:color-mix(in srgb,var(--surface) 90%,transparent);border-color:color-mix(in srgb,var(--social-color, var(--primary)) 42%,var(--border));color:var(--social-color, var(--primary))}.contact-social-link:hover .contact-social-link__icon{background:color-mix(in srgb,var(--social-color, var(--primary)) 14%,transparent)}.contact-info-card__response{display:flex;align-items:center;gap:7px;margin-top:clamp(.9rem,1.9vh,1.2rem);color:var(--text-muted);font-size:12px}.contact-form-card{position:relative;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);border-radius:var(--radius-xl);padding:clamp(1.6rem,3.5vw,2.4rem);box-shadow:var(--shadow-md);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);min-height:480px;display:flex;flex-direction:column}.contact-form{display:flex;flex-direction:column;gap:clamp(.9rem,2vh,1.3rem);flex:1}.contact-form__heading{margin:0 0 clamp(.2rem,.8vh,.5rem);font-size:clamp(1.05rem,1.9vw,1.25rem);letter-spacing:-.02em}.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.75rem,1.7vw,1.1rem)}.contact-form__field{display:flex;flex-direction:column;gap:7px}.contact-form__field--grow{flex:1;display:flex;flex-direction:column}.contact-form__field--grow .contact-form__textarea{flex:1;min-height:120px}.contact-form__label{font-size:12.5px;font-weight:600;color:var(--text-muted);letter-spacing:.01em;transition:color .15s ease}.contact-form__field:focus-within .contact-form__label{color:var(--primary)}.contact-form__input,.contact-form__textarea{border:1.5px solid var(--border-strong);background:color-mix(in srgb,var(--surface-muted) 78%,transparent);border-radius:var(--radius-md);padding:12px 15px;font-size:14px;color:var(--text);outline:none;width:100%;font-family:var(--font);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.contact-form__input::placeholder,.contact-form__textarea::placeholder{color:var(--text-muted);opacity:.6}.contact-form__input:focus,.contact-form__textarea:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft),0 2px 6px #2563eb14}.contact-form__field--error .contact-form__input,.contact-form__field--error .contact-form__textarea{border-color:#ef4444}.contact-form__field--error .contact-form__input:focus,.contact-form__field--error .contact-form__textarea:focus{box-shadow:0 0 0 3px #ef444421}.contact-form__textarea{resize:vertical;max-height:320px;line-height:1.62}.contact-form__error{font-size:12px;color:#ef4444;font-weight:500;margin-top:-2px}.contact-form__submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--cta-bg);color:var(--cta-fg);border:none;border-radius:var(--radius-md);padding:13px 28px;font-size:14.5px;font-weight:600;letter-spacing:.015em;cursor:pointer;margin-top:4px;position:relative;overflow:hidden;transition:background .18s ease,box-shadow .22s ease}.contact-form__submit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.09),transparent 55%);pointer-events:none}.contact-form__submit:hover:not(:disabled){background:var(--cta-bg-hover);box-shadow:0 6px 22px #2563eb42}.contact-form__submit:disabled{opacity:.72;cursor:not-allowed}.contact-form__submit-spinner{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.32);border-top-color:#fff;animation:cp-spin .7s linear infinite;flex-shrink:0}@keyframes cp-spin{to{transform:rotate(360deg)}}.contact-form-success{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:clamp(.7rem,1.8vh,1.1rem);padding:clamp(2rem,6vh,3.5rem) 1.5rem;flex:1}.contact-form-success__icon{width:72px;height:72px;border-radius:50%;background:color-mix(in srgb,#22c55e 14%,transparent);color:#22c55e;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,#22c55e 28%,transparent)}.contact-form-success__title{margin:0;font-size:clamp(1.25rem,3vw,1.65rem);letter-spacing:-.025em}.contact-form-success__msg{margin:0;color:var(--text-muted);max-width:330px;line-height:1.62;font-size:14px}.contact-form-success__reset{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--primary);border:1.5px solid color-mix(in srgb,var(--primary) 38%,transparent);border-radius:var(--radius-md);padding:10px 22px;font-size:13.5px;font-weight:600;cursor:pointer;margin-top:.3rem;transition:background .18s ease,border-color .18s ease}.contact-form-success__reset:hover{background:var(--primary-soft);border-color:var(--primary)}[data-theme=dark] .contact-form__submit:hover:not(:disabled){box-shadow:0 6px 28px #5ba4fb52}[data-theme=dark] .contact-page__orb--1{background:radial-gradient(circle,rgba(91,164,251,.22),transparent 70%)}[data-theme=dark] .contact-page__orb--2{background:radial-gradient(circle,rgba(167,139,250,.16),transparent 70%)}@media (max-width: 860px){.contact-page__grid{grid-template-columns:1fr}.contact-page__grid>.contact-info-card{order:2}.contact-page__grid>.contact-form-card{order:1}}@media (max-width: 600px){.contact-form__row{grid-template-columns:1fr}.contact-page__hero-title{font-size:clamp(1.9rem,10vw,2.8rem)}}@media (prefers-reduced-motion: reduce){.contact-page__orb,.contact-page__badge-dot,.contact-form__submit-spinner{animation:none}}.admin-page__head{margin:8px 0 20px}.admin-page__title{margin:0 0 6px;font-size:32px;letter-spacing:-.02em}.admin-page__subtitle{margin:0;color:var(--text-muted);font-size:15px}.admin-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 22px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:14px;width:fit-content}.admin-tabs__tab{border:0;background:transparent;color:var(--text-muted);padding:9px 18px;font-size:14px;font-weight:600;border-radius:10px;transition:background .15s ease,color .15s ease}.admin-tabs__tab:hover{color:var(--text)}.admin-tabs__tab.is-active{background:var(--primary);color:#fff}.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:10px;font-weight:600;font-size:14px;background:var(--surface-muted);color:var(--text);border:1px solid var(--border-strong);cursor:pointer;transition:background .15s ease,transform .15s ease,border-color .15s ease}.btn:hover{background:var(--surface)}.btn--primary{background:var(--cta-bg);color:var(--cta-fg);border-color:transparent}.btn--primary:hover{background:var(--cta-bg-hover);transform:translateY(-1px)}.btn--danger{color:#b91c1c;border-color:#fecaca;background:#fef2f2}[data-theme=dark] .btn--danger{color:#fca5a5;border-color:#7f1d1d;background:#7f1d1d2e}.btn--ghost{background:transparent;border-color:var(--border)}.projects-admin__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.projects-admin__toolbar h2{margin:0;font-size:18px}.projects-admin__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.projects-admin__row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted)}.projects-admin__row-main strong{font-size:15px}.projects-admin__slug{display:block;font-size:12px;color:var(--text-muted);margin-top:2px}.projects-admin__summary{margin:6px 0 0;font-size:13px;color:var(--text-muted);line-height:1.5}.projects-admin__row-actions{display:inline-flex;gap:8px}.projects-admin__empty{padding:24px;text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-md);list-style:none}.project-form__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:12px}.project-form__head h2{margin:0;font-size:18px}.project-form__head-actions{display:inline-flex;gap:8px}.project-form__error{margin-bottom:14px;padding:10px 14px;border-radius:10px;background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;font-size:14px}[data-theme=dark] .project-form__error{background:#7f1d1d33;color:#fca5a5;border-color:#7f1d1d}.project-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--text)}.field--full{grid-column:1 / -1}.field input,.field textarea,.field select{font:inherit;font-weight:400;padding:10px 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field textarea{resize:vertical;min-height:60px;font-family:inherit}.field textarea[spellcheck=false]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45}.field__hint{font-size:12px;color:var(--text-muted);font-weight:500}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.project-form__chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);padding:7px 14px;border-radius:999px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{color:var(--text)}.chip.is-active{background:var(--primary);color:#fff;border-color:transparent}.project-form__image-row{display:grid;grid-template-columns:160px 1fr;gap:16px;align-items:start}.project-form__image-preview{width:160px;aspect-ratio:16 / 10;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--surface-muted)}.project-form__image-preview img{width:100%;height:100%;object-fit:cover;display:block}.project-form__image-controls{display:flex;flex-direction:column;gap:8px}@media (max-width: 720px){.project-form__grid,.projects-admin__row,.project-form__image-row{grid-template-columns:1fr}}.users-admin__toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.users-admin__toolbar h2{margin:0;font-size:18px}.users-admin__empty{padding:48px 24px;text-align:center;border:2px dashed var(--border-strong);border-radius:var(--radius-md)}.users-admin__empty p{margin:0 0 16px;font-size:15px;color:var(--text-muted)}.users-table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border)}.users-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.users-table thead{background:var(--surface-muted)}.users-table thead th{padding:11px 14px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border)}.users-table tbody tr{border-bottom:1px solid var(--border);transition:background .1s ease}.users-table tbody tr:last-child{border-bottom:none}.users-table tbody tr:hover{background:var(--surface-muted)}.users-table td{padding:12px 14px;vertical-align:middle}.users-table__name{font-weight:600;color:var(--text)}.users-table__sub{font-size:12px;color:var(--text-muted);margin-top:2px}.users-table__id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:var(--text-muted)}.code-chip{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:700;letter-spacing:.1em;padding:4px 8px 4px 10px;border-radius:8px;background:var(--surface-muted);border:1px solid var(--border);color:var(--text)}.code-chip--used{opacity:.5;text-decoration:line-through}.code-chip__copy{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 2px;line-height:1;transition:color .1s ease}.code-chip__copy:hover{color:var(--primary)}.code-chip__badge{font-size:10px;font-weight:600;letter-spacing:0;padding:2px 6px;border-radius:4px;background:#dcfce7;color:#166534}[data-theme=dark] .code-chip__badge{background:#1665344d;color:#86efac}.code-chip__badge--used{background:var(--surface-muted);color:var(--text-muted)}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.badge--open{background:var(--surface-muted);color:var(--text-muted)}.badge--accepted{background:#dcfce7;color:#166534}.badge--firstInterview{background:#dbeafe;color:#1d4ed8}.badge--trialWork{background:#fef9c3;color:#854d0e}.badge--rejected{background:#fee2e2;color:#b91c1c}[data-theme=dark] .badge--accepted{background:#16653440;color:#86efac}[data-theme=dark] .badge--firstInterview{background:#1d4ed840;color:#93c5fd}[data-theme=dark] .badge--trialWork{background:#854d0e40;color:#fde68a}[data-theme=dark] .badge--rejected{background:#b91c1c40;color:#fca5a5}.perm-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.perm-badge--1{background:#fef3c7;color:#92400e}.perm-badge--2{background:#ede9fe;color:#5b21b6}.perm-badge--3{background:#dbeafe;color:#1d4ed8}.perm-badge--4{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}[data-theme=dark] .perm-badge--1{background:#92400e40;color:#fcd34d}[data-theme=dark] .perm-badge--2{background:#5b21b640;color:#c4b5fd}[data-theme=dark] .perm-badge--3{background:#1d4ed840;color:#93c5fd}[data-theme=dark] .perm-badge--4{background:#64748b26;color:#94a3b8;border-color:transparent}.replied-badge{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600}.replied-badge--yes{color:#16a34a}.replied-badge--no{color:var(--text-muted)}[data-theme=dark] .replied-badge--yes{color:#4ade80}.code-success{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;border-radius:var(--radius-md);background:#f0fdf4;border:1px solid #bbf7d0;margin-bottom:22px;position:relative}[data-theme=dark] .code-success{background:#1665341f;border-color:#4ade8040}.code-success__icon{font-size:24px;flex-shrink:0;margin-top:2px}.code-success__body{flex:1;min-width:0}.code-success__title{font-weight:700;color:#15803d;margin:0 0 6px;font-size:15px}[data-theme=dark] .code-success__title{color:#86efac}.code-success__message{font-size:13px;color:#166534;margin:0 0 14px;line-height:1.55}[data-theme=dark] .code-success__message{color:#bbf7d0}.code-success__code-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.code-success__code{display:inline-block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:30px;font-weight:800;letter-spacing:.22em;padding:10px 22px;border-radius:12px;background:#fff;border:2px solid #86efac;color:#166534}[data-theme=dark] .code-success__code{background:#16653433;border-color:#4ade80;color:#86efac}.code-success__close{position:absolute;top:14px;right:14px;border:none;background:transparent;color:#166534;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:6px;line-height:1;opacity:.6;transition:opacity .15s ease}.code-success__close:hover{opacity:1}[data-theme=dark] .code-success__close{color:#86efac}.visit-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;background:var(--primary-soft);color:var(--primary)}.user-form__toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;font-size:14px;font-weight:500;color:var(--text);transition:background .15s,border-color .15s;-webkit-user-select:none;user-select:none}.user-form__toggle:hover{background:var(--surface-muted)}.user-form__toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.user-form__code-display{padding:14px 16px;border-radius:12px;background:var(--surface-muted);border:1px solid var(--border)}.user-form__code-label{display:block;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.user-form__code-row{display:flex;align-items:center;gap:12px}.user-form__code-value{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:22px;font-weight:800;letter-spacing:.18em;color:var(--primary)}.user-form__code-status{font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px}.user-form__code-status--active{background:#dcfce7;color:#166534}.user-form__code-status--used{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}[data-theme=dark] .user-form__code-status--active{background:#1665344d;color:#86efac}@property --popup-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes popup-border-spin{to{--popup-angle: 360deg}}@keyframes popup-glow-pulse{0%,to{opacity:.45;transform:translate(-50%) scale(1)}50%{opacity:.65;transform:translate(-50%) scale(1.08)}}.welcome-popup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px}.welcome-popup__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#060c19b8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer}[data-theme=light] .welcome-popup__backdrop{background:#0f172a85}.welcome-popup__card{position:relative;z-index:1;width:100%;max-width:520px;border-radius:var(--radius-xl);overflow:hidden}.welcome-popup__card:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:calc(var(--radius-xl) + 2px);background:conic-gradient(from var(--popup-angle),#3b82f6 0%,#8b5cf6 20%,#06b6d4 45%,#a855f7 65%,#3b82f6 100%);animation:popup-border-spin 4s linear infinite;z-index:0;opacity:.9}[data-theme=light] .welcome-popup__card:before{opacity:.6}.welcome-popup__card:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:calc(var(--radius-xl) - 2px);background:var(--surface);z-index:1}.welcome-popup__inner{position:relative;z-index:2;padding:38px 34px 30px}.welcome-popup__glow{position:absolute;top:-100px;left:50%;width:340px;height:240px;border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--primary) 28%,transparent) 0%,transparent 70%);pointer-events:none;animation:popup-glow-pulse 3.5s ease-in-out infinite;z-index:0}.welcome-popup__icon-row{display:flex;justify-content:center;margin-bottom:18px}.welcome-popup__icon{width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--primary) 14%,transparent);border:1px solid color-mix(in srgb,var(--primary) 32%,transparent);display:flex;align-items:center;justify-content:center;color:var(--primary)}.welcome-popup__greeting{text-align:center;font-size:clamp(1.22rem,4.5vw,1.6rem);font-weight:700;letter-spacing:-.03em;line-height:1.2;color:var(--text);margin-bottom:6px}.welcome-popup__subtitle{text-align:center;font-size:.875rem;color:var(--text-muted);margin-bottom:22px}.welcome-popup__divider{height:1px;background:var(--border);margin:0 0 18px}.welcome-popup__body{font-size:.9rem;line-height:1.68;color:var(--text-muted);margin-bottom:14px}.welcome-popup__section{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-md);padding:13px 15px;margin-bottom:14px}.welcome-popup__section-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--primary);margin-bottom:10px}.welcome-popup__nav-preview{display:flex;flex-wrap:wrap;gap:7px}.welcome-popup__nav-item{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:.8rem;color:var(--text)}.welcome-popup__nav-dot{width:6px;height:6px;border-radius:50%;background:var(--primary);flex-shrink:0}.welcome-popup__closing{font-size:.875rem;font-style:italic;color:var(--text-muted);text-align:center;margin:18px 0 22px}.welcome-popup__cta{display:block;width:100%;padding:13px 24px;background:var(--cta-bg);color:var(--cta-fg);border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease}.welcome-popup__cta:hover{background:var(--cta-bg-hover)}@media (max-width: 560px){.welcome-popup__inner{padding:28px 20px 22px}.welcome-popup__greeting{font-size:1.25rem}}@property --denied-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@keyframes denied-border-spin{to{--denied-angle: 360deg}}@keyframes denied-glow-pulse{0%,to{opacity:.4;transform:translate(-50%) scale(1)}50%{opacity:.6;transform:translate(-50%) scale(1.1)}}.access-denied{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9100;display:flex;align-items:center;justify-content:center;padding:20px}.access-denied__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#060c19b8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:pointer}[data-theme=light] .access-denied__backdrop{background:#0f172a85}.access-denied__card{position:relative;z-index:1;width:100%;max-width:440px;border-radius:var(--radius-xl);overflow:hidden}.access-denied__card:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:calc(var(--radius-xl) + 2px);background:conic-gradient(from var(--denied-angle),#ef4444 0%,#f97316 25%,#ec4899 55%,#ef4444 100%);animation:denied-border-spin 4s linear infinite;z-index:0;opacity:.85}[data-theme=light] .access-denied__card:before{opacity:.55}.access-denied__card:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:calc(var(--radius-xl) - 2px);background:var(--surface);z-index:1}.access-denied__inner{position:relative;z-index:2;padding:38px 34px 30px;text-align:center}.access-denied__glow{position:absolute;top:-90px;left:50%;width:280px;height:200px;border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,#ef4444 22%,transparent) 0%,transparent 70%);pointer-events:none;animation:denied-glow-pulse 3.5s ease-in-out infinite;z-index:0}.access-denied__emoji{font-size:3rem;line-height:1;margin-bottom:16px;display:block}.access-denied__title{font-size:clamp(1.4rem,5vw,1.75rem);font-weight:700;letter-spacing:-.03em;color:var(--text);margin-bottom:14px}.access-denied__body{font-size:.9rem;line-height:1.7;color:var(--text-muted);margin-bottom:24px}.access-denied__cta{display:block;width:100%;padding:13px 24px;background:var(--cta-bg);color:var(--cta-fg);border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .18s ease}.access-denied__cta:hover{background:var(--cta-bg-hover)}@media (max-width: 480px){.access-denied__inner{padding:28px 20px 22px}}:root,[data-theme=light]{--bg: #f5f6f8;--surface: #ffffff;--surface-muted: #fafbfc;--border: #e6e8ec;--border-strong: #d6d9df;--text: #0f172a;--text-muted: #64748b;--primary: #2563eb;--primary-soft: #dbeafe;--cta-bg: #0b1220;--cta-bg-hover: #111a2e;--cta-fg: #ffffff;--header-bg: rgba(245, 246, 248, .85);--login-glow: #e8efff;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 14px rgba(15, 23, 42, .06);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 22px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}[data-theme=dark]{--bg: #060c19;--surface: #0d1526;--surface-muted: #091121;--border: #1c2b47;--border-strong: #2a3f63;--text: #e9eef8;--text-muted: #7a8baa;--primary: #5ba4fb;--primary-soft: rgba(91, 164, 251, .14);--cta-bg: #2563eb;--cta-bg-hover: #3b72f0;--cta-fg: #ffffff;--header-bg: rgba(6, 12, 25, .85);--login-glow: rgba(37, 99, 235, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .55), 0 0 0 .5px rgba(255, 255, 255, .025);--shadow-md: 0 4px 20px rgba(0, 0, 0, .6), 0 1px 4px rgba(0, 0, 0, .4)}html{transition:background-color .2s ease,color .2s ease}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}input{font-family:inherit;color:var(--text)}input::placeholder{color:var(--text-muted);opacity:.7}
