@import"https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&family=Space+Grotesk:wght@500;700&display=swap";:root{color-scheme:dark;--color-bg: #050816;--color-bg-soft: #111827;--color-fg: #f9fafb;--color-muted: #9ca3af;--color-accent: #7c3aed;--color-accent-soft: rgba(124, 58, 237, .18);--color-border: #1f2937;--cursor-x-px: 70vw;--cursor-y-px: 15vh;--cursor-x-bottom-px: 70vw;--cursor-y-bottom-px: 15vh;--radius-md: 12px;--radius-lg: 18px;--shadow-soft: 0 16px 40px rgba(0, 0, 0, .55);--transition-fast: .15s ease-out;--transition-med: .22s ease-out;--nav-height: 64px}html[data-theme=light]{color-scheme:light;--color-bg: #f7f4ee;--color-bg-soft: #f1ece4;--color-fg: #2a2731;--color-muted: #6f6977;--color-accent: #6d75b8;--color-accent-soft: rgba(109, 117, 184, .1);--color-border: #ddd7ce;--shadow-soft: 0 16px 34px rgba(73, 63, 106, .08)}html[data-theme=dark]{color-scheme:dark;--color-bg: #050816;--color-bg-soft: #111827;--color-fg: #f9fafb;--color-muted: #9ca3af;--color-border: #1f2937}html{transition:background-color .6s cubic-bezier(.4,0,.2,1),color .6s cubic-bezier(.4,0,.2,1);background-color:var(--color-bg);color:var(--color-fg)}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning *:before,html.theme-transitioning *:after{transition:background-color .6s cubic-bezier(.4,0,.2,1),color .6s cubic-bezier(.4,0,.2,1),border-color .6s cubic-bezier(.4,0,.2,1),box-shadow .6s cubic-bezier(.4,0,.2,1),fill .6s cubic-bezier(.4,0,.2,1),stroke .6s cubic-bezier(.4,0,.2,1),opacity .6s cubic-bezier(.4,0,.2,1)!important}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:Ubuntu,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;background-color:var(--color-bg);color:var(--color-fg);-webkit-font-smoothing:antialiased;transition:background-color .6s cubic-bezier(.4,0,.2,1),color .6s cubic-bezier(.4,0,.2,1)}.app-root{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at var(--cursor-x-px) var(--cursor-y-px),#1f2937 0,transparent 55%),radial-gradient(circle at var(--cursor-x-bottom-px) var(--cursor-y-bottom-px),#020617 0,transparent 50%),var(--color-bg);transition:background-color .6s cubic-bezier(.4,0,.2,1),color .6s cubic-bezier(.4,0,.2,1)}.app-main{flex:1;padding:calc(.95rem + 60px) .9rem 5.6rem;max-width:640px;margin:0 auto}@media (min-width: 768px){.app-main{padding:2rem 1.5rem;max-width:1024px}.app-root{padding-bottom:0}}@media (min-width: 1200px){.app-main{max-width:1200px}}html[data-theme=light] .app-root{background:radial-gradient(circle at var(--cursor-x-px) var(--cursor-y-px),rgba(229,225,216,.82) 0,rgba(215,210,223,.38) 22%,rgba(205,213,229,.16) 34%,transparent 50%),radial-gradient(circle at var(--cursor-x-bottom-px) var(--cursor-y-bottom-px),rgba(109,117,184,.18) 0,rgba(166,189,215,.12) 24%,transparent 42%),var(--color-bg)}.section{margin-bottom:2.5rem}.section-header{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;margin-bottom:1rem}.section-title{font-size:1.5rem;font-weight:600;font-family:Space Grotesk,Ubuntu,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:color .6s cubic-bezier(.4,0,.2,1)}.section-subtitle{font-size:1rem;color:var(--color-muted);transition:color .6s cubic-bezier(.4,0,.2,1)}@media (max-width: 767px){.section{margin-bottom:2rem}.section-header{gap:.12rem;margin-bottom:.82rem}.section-title{font-size:1.34rem;line-height:1.08}.section-subtitle{font-size:.88rem;line-height:1.45}}@media (min-width: 640px){.section-header{flex-direction:row;align-items:baseline;justify-content:space-between;gap:0}}.card{background:linear-gradient(135deg,var(--color-bg-soft),#030712);border-radius:var(--radius-lg);padding:1rem;border:1px solid var(--color-border);box-shadow:var(--shadow-soft);transition:transform var(--transition-med),box-shadow var(--transition-med),border-color .6s cubic-bezier(.4,0,.2,1),background .6s cubic-bezier(.4,0,.2,1),background-color .6s cubic-bezier(.4,0,.2,1);touch-action:manipulation}.card-tappable:active{transform:scale(.97) translateY(1px)}@media (hover: hover) and (pointer: fine){.card:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 18px 35px #000000b3;border-color:var(--color-accent-soft)}}.bottom-nav{position:fixed;inset-inline:0;bottom:0;min-height:var(--nav-height);background:#0f172ae6;backdrop-filter:blur(18px);border-top:1px solid rgba(148,163,184,.35);display:flex;justify-content:space-around;align-items:center;z-index:50;transition:background .6s cubic-bezier(.4,0,.2,1),border-color .6s cubic-bezier(.4,0,.2,1)}.bottom-nav-highlight{display:none}@media (min-width: 768px){.bottom-nav{position:sticky;bottom:auto;top:0;margin:0 auto 1.25rem;max-width:640px;border-radius:999px;border:1px solid rgba(148,163,184,.35)}}.bottom-nav-item{flex:1;text-align:center;padding-block:.4rem;color:var(--color-muted);font-size:.7rem;position:relative;cursor:pointer;background:none;border:none;transition:color .22s ease,background-color .22s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,border-color .22s ease}.bottom-nav-item-icon{display:inline-flex;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;margin:0 auto .18rem}.bottom-nav-item-icon svg{width:100%;height:100%}.bottom-nav-item-label{display:block;font-size:.68rem;font-weight:600;letter-spacing:.01em}@media (max-width: 767px){.bottom-nav{--bottom-nav-padding: .32rem;--bottom-nav-slot-width: calc((100% - (var(--bottom-nav-padding) * 2)) / 5);left:0;right:0;bottom:calc(.75rem + env(safe-area-inset-bottom));inset-inline:0;margin-inline:auto;transform:none;width:min(22rem,calc(100vw - 1.25rem));max-width:calc(100vw - 1.25rem);overflow:hidden;padding:var(--bottom-nav-padding);min-height:3.95rem;border-radius:999px;border:1px solid rgba(148,163,184,.24);background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 55%),#080d18db;box-shadow:0 14px 30px #0206173d,0 4px 12px #0206171f,inset 0 1px #ffffff0a;transform:translateY(0) scale(1);transform-origin:center bottom;transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .32s ease,box-shadow .32s ease,background .6s cubic-bezier(.4,0,.2,1),border-color .6s cubic-bezier(.4,0,.2,1);will-change:transform,opacity}.bottom-nav.is-hidden-on-scroll{transform:translateY(calc(145% + env(safe-area-inset-bottom))) scale(.94);opacity:0;box-shadow:0 6px 14px #02061714,0 2px 6px #0206170d,inset 0 1px #ffffff05;pointer-events:none}.bottom-nav.is-showing-liquid{animation:bottom-nav-show-liquid .54s cubic-bezier(.22,1,.36,1)}.bottom-nav-highlight{display:block;position:absolute;top:var(--bottom-nav-padding);bottom:var(--bottom-nav-padding);left:var(--bottom-nav-padding);width:var(--bottom-nav-slot-width);border-radius:999px;transform:translate(calc(var(--bottom-nav-active-index, 0) * 100%));transition:transform .32s cubic-bezier(.22,1,.36,1),background-color .22s ease,border-color .22s ease,box-shadow .22s ease;pointer-events:none}.bottom-nav-highlight:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff14,#ffffff0a);border:1px solid rgba(148,163,184,.14);box-shadow:0 8px 18px #02061724,inset 0 1px #ffffff14;transform-origin:center}.bottom-nav-highlight.is-wobbling:before{animation:bottom-nav-highlight-liquid .64s cubic-bezier(.22,1,.36,1)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.13rem;min-height:3rem;padding:.32rem .08rem .42rem;border-radius:999px;border:1px solid transparent;isolation:isolate;z-index:1;opacity:.84}.bottom-nav-item.is-active{transform:none;color:#f8fafc;background:transparent;border-color:transparent;box-shadow:none;opacity:1}.bottom-nav-item.is-active .bottom-nav-item-icon{color:#fff;transform:scale(1.08)}.bottom-nav-item.is-active .bottom-nav-item-label{color:#fff;letter-spacing:.015em;font-weight:700}.bottom-nav-item-icon{width:1.08rem;height:1.08rem;margin-bottom:0;transition:transform .22s cubic-bezier(.22,1,.36,1),color .22s ease,opacity .22s ease,filter .22s ease}.bottom-nav-item-label{font-size:.61rem;font-weight:600;letter-spacing:0;white-space:nowrap;transition:color .22s ease,opacity .22s ease,letter-spacing .22s ease,font-weight .22s ease}html[data-theme=light] .bottom-nav{background:linear-gradient(180deg,#fffc,#f8fafcd6),#f8fafce0;border-color:#94a3b833;box-shadow:0 12px 26px #0f172a14,0 4px 12px #94a3b814,inset 0 1px #ffffffe0}html[data-theme=light] .bottom-nav-highlight:before{background:linear-gradient(180deg,#fffffff5,#fffc);border-color:#94a3b824;box-shadow:0 8px 18px #94a3b81f,inset 0 1px #fffffff2}html[data-theme=light] .bottom-nav-item{color:#64748b}html[data-theme=light] .bottom-nav-item.is-active{color:#0f172a;background:transparent;border-color:transparent;box-shadow:none}html[data-theme=light] .bottom-nav-item.is-active .bottom-nav-item-icon,html[data-theme=light] .bottom-nav-item.is-active .bottom-nav-item-label{color:#0f172a}}@keyframes bottom-nav-highlight-liquid{0%{transform:scaleX(.82) scaleY(1.14) skew(-4deg)}26%{transform:scaleX(1.12) scaleY(.9) skew(3deg)}52%{transform:scaleX(.93) scaleY(1.08) skew(-2deg)}74%{transform:scaleX(1.04) scaleY(.97) skew(1deg)}to{transform:scaleX(1) scaleY(1) skew(0)}}@keyframes bottom-nav-show-liquid{0%{transform:translateY(calc(145% + env(safe-area-inset-bottom))) scale(.94);opacity:0}38%{transform:translateY(-4%) scaleX(1.025) scaleY(.975);opacity:1}70%{transform:translateY(1.5%) scaleX(.992) scaleY(1.01);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.chip{display:inline-flex;padding:.2rem .75rem;border-radius:999px;border:1px solid rgba(148,163,184,.4);font-size:.75rem;color:var(--color-muted);background:transparent;transition:color .6s cubic-bezier(.4,0,.2,1),border-color .6s cubic-bezier(.4,0,.2,1),background-color .24s ease,transform .22s ease,box-shadow .22s ease,opacity .22s ease}button.chip,a.chip,.cv-sort-btn,.cv-more-button,.cv-back-button,.graphics-folder-view-all,.gallery-close-btn,.gallery-mobile-tutorial-close,.lightbox-icon-btn,.lightbox-reset-btn,.lightbox-close-btn,.lightbox-nav-btn,.project-link{transition:transform .22s cubic-bezier(.22,1,.36,1),border-color .22s ease,background-color .22s ease,color .22s ease,box-shadow .22s ease,opacity .22s ease}button.chip:hover,a.chip:hover,.cv-sort-btn:hover,.cv-more-button:hover,.cv-back-button:hover,.graphics-folder-view-all:hover,.gallery-close-btn:hover,.gallery-mobile-tutorial-close:hover,.lightbox-icon-btn:hover,.lightbox-reset-btn:hover,.project-link:hover{transform:translateY(-1px)}html[data-theme=light] .chip{border-color:#6d75b83d}.theme-toggle{padding:0;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;font-size:1.6rem;line-height:1;transition:transform .22s ease-out,color .22s ease-out}.top-bar-fixed{position:fixed;top:18px;left:0;right:0;padding:8px 22px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:55}.top-bar-fixed>*{pointer-events:auto}.top-logo-fixed{display:flex;align-items:center;gap:8px;padding:.35rem .55rem;border-radius:999px;background:#02061705;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.theme-toggle{padding:.35rem;border-radius:999px;background:#02061705;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}html[data-theme=dark] .theme-toggle-icon{transform:rotate(-10deg) scale(1);color:#9ca3af}html[data-theme=light] .top-logo-fixed,html[data-theme=light] .theme-toggle{background:#faf7f1b8}html[data-theme=light] .theme-toggle-icon{transform:rotate(12deg) scale(1.05);color:#6670ac}html.theme-transitioning .theme-toggle-icon{animation:theme-icon-rotate .6s cubic-bezier(.4,0,.2,1)}@keyframes theme-icon-rotate{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.15)}to{transform:rotate(360deg) scale(1)}}@media (hover: hover) and (pointer: fine){.theme-toggle:hover .theme-toggle-icon{transform:scale(1.1)}}.theme-toggle:active .theme-toggle-icon{transform:scale(.95)}.grid{display:grid;gap:.75rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}@media (min-width: 900px){.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1200px){.projects-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.folder-cover{height:120px}@media (min-width: 420px){.folder-cover{height:140px}}@media (min-width: 768px){.folder-cover{height:170px}}.projects-grid{align-items:stretch;grid-auto-rows:1fr}.projects-grid>*{display:flex;flex-direction:column;height:100%}.projects-grid>* .folder-cover{flex:1 1 auto;display:block;min-height:0}.project-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.75rem;padding:.95rem;border-radius:20px;background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);border:1px solid color-mix(in oklab,var(--color-border) 92%,transparent);box-shadow:0 16px 32px #02061724}.project-card-featured{border-color:#f59e0b42;background:linear-gradient(180deg,rgba(245,158,11,.04),transparent 22%),color-mix(in oklab,var(--color-bg-soft) 96%,transparent);box-shadow:0 16px 34px #02061729,0 0 0 1px #f59e0b14}.project-card-featured:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(245,158,11,.12),transparent 52%),linear-gradient(180deg,rgba(255,255,255,.03),transparent 32%);opacity:.7;animation:featured-card-soft-glow 3.6s ease-in-out infinite}.project-featured-chip{margin-bottom:0;width:fit-content;padding:.24rem .58rem;border-radius:999px;border-color:#f59e0b3d;color:#fbbf24;background:#f59e0b14;font-weight:700;letter-spacing:.08em;text-transform:uppercase}html[data-theme=light] .project-card-featured{border-color:#f59e0b38;background:linear-gradient(180deg,rgba(245,158,11,.05),transparent 24%),#f9fafbf5;box-shadow:0 14px 30px #0f172a14,0 0 0 1px #f59e0b0f}html[data-theme=light] .project-featured-chip{color:#b45309;background:#f59e0b14;border-color:#f59e0b38}@keyframes featured-card-soft-glow{0%,to{opacity:.45}50%{opacity:.82}}.graphics-folder-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.7rem;padding:.9rem;border-radius:20px;background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);border:1px solid color-mix(in oklab,var(--color-border) 92%,transparent);box-shadow:0 16px 32px #02061724;transform-origin:center top;animation:graphics-card-enter .44s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--card-enter-delay, 0ms)}.graphics-folder-card.is-opening{animation:graphics-card-open .28s cubic-bezier(.2,.8,.2,1) both}.graphics-folder-card.is-returned{animation:graphics-card-return .34s cubic-bezier(.2,.8,.2,1) both}.graphics-folder-card:after{display:none}html[data-theme=light] .graphics-folder-card:after{display:none}@keyframes graphics-card-enter{0%{opacity:0;transform:translateY(12px) scale(.97);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes graphics-card-open{0%{transform:scale(1)}45%{transform:translateY(-3px) scale(1.03)}to{transform:scale(.985)}}@keyframes graphics-card-return{0%{transform:scale(.985)}55%{transform:translateY(-2px) scale(1.015)}to{transform:scale(1)}}.graphics-folder-open{display:flex;flex-direction:column;align-items:center;width:100%;border:none;padding:0;margin:0;background:transparent;color:inherit;text-align:center;cursor:pointer}.graphics-folder-meta{min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column;align-items:center;gap:.18rem;width:100%}.graphics-folder-cover,.project-card-cover{border-radius:16px;overflow:hidden;background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft));border:1px solid color-mix(in oklab,var(--color-border) 92%,transparent)}.graphics-folder-cover{margin-bottom:.15rem}.project-card-cover{height:190px}.graphics-folder-title{max-width:22ch;font-size:.94rem;font-weight:640;line-height:1.3;letter-spacing:-.01em;color:var(--color-text)}.graphics-folder-count{font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted)}.graphics-folder-view-all{align-self:center;position:relative;z-index:1;margin-top:.14rem;gap:.34rem;padding:.5rem .92rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-accent) 28%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 78%,transparent);color:var(--color-text);font-weight:550;font-size:.84rem;letter-spacing:.005em;text-transform:none;text-shadow:none;box-shadow:none;transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.graphics-folder-view-all:after{content:"→";display:inline-block;font-size:.95em;letter-spacing:0;opacity:.6;transform:translate(0);transition:opacity .18s ease,transform .18s ease}@media (hover: hover) and (pointer: fine){.graphics-folder-view-all:hover{border-color:color-mix(in oklab,var(--color-accent) 56%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 92%,transparent);color:var(--color-text);box-shadow:0 8px 18px #0206171f}.graphics-folder-view-all:hover:after{opacity:1;transform:translate(3px)}}.graphics-folder-view-all:focus-visible{outline:2px solid rgba(129,140,248,.8);outline-offset:2px}.graphics-folder-view-all:active{transform:scale(.99)}html[data-theme=light] .graphics-folder-view-all{border-color:#6d75b847;background:#ffffffb8;color:#2a2731;text-shadow:none;box-shadow:none}@media (hover: hover) and (pointer: fine){html[data-theme=light] .graphics-folder-view-all:hover{border-color:#6d75b86b;background:#fffffff0;box-shadow:0 8px 18px #493f6a14;color:#1f1d2e}}.graphics-projects-grid{grid-auto-rows:auto}.graphics-projects-grid>* .folder-cover{flex:0 0 auto}@media (min-width: 1200px){.graphics-projects-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1600px){.graphics-projects-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.gallery-experience-shell{background:radial-gradient(circle at 10% 0%,rgba(124,58,237,.12) 0,transparent 35%),radial-gradient(circle at 100% 120%,rgba(56,189,248,.1) 0,transparent 45%),var(--color-bg)}html[data-theme=light] .gallery-experience-shell{background:radial-gradient(circle at 10% 0%,rgba(109,117,184,.1) 0,transparent 34%),radial-gradient(circle at 100% 120%,rgba(157,183,208,.1) 0,transparent 44%),var(--color-bg)}.gallery-header{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.2rem;border-bottom:1px solid var(--color-border);background:color-mix(in oklab,var(--color-bg-soft) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.gallery-grid-shell{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;-webkit-overflow-scrolling:touch;position:relative}.gallery-grid-shell--with-tutorial{scroll-padding-top:8rem}.folder-gallery-shell{animation:gallery-shell-enter .32s cubic-bezier(.22,1,.36,1)}@keyframes gallery-shell-enter{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.gallery-mobile-tutorial{position:sticky;top:.5rem;z-index:4;width:min(100%,520px);margin-bottom:.95rem;border-radius:18px;border:1px solid rgba(148,163,184,.2);background:#0f172ae0;color:#e2e8f0;padding:.88rem .92rem .92rem;box-shadow:0 16px 30px #02061742;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:gallery-tutorial-enter .36s cubic-bezier(.22,1,.36,1)}.gallery-mobile-tutorial-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.68rem}.gallery-mobile-tutorial-title{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#ffffffb8}.gallery-mobile-tutorial-close{width:28px;height:28px;border-radius:999px;border:1px solid rgba(148,163,184,.2);background:#ffffff0a;color:#ffffffb8;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,color .2s ease}.gallery-mobile-tutorial-steps{display:grid;gap:.56rem}.gallery-mobile-tutorial-line{margin:0;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:.62rem;font-size:.78rem;line-height:1.5;color:#e2e8f0eb}.gallery-mobile-tutorial-step{width:1.5rem;height:1.5rem;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;line-height:1;color:#ffffffeb}@keyframes gallery-tutorial-enter{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.gallery-thumbs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem;max-width:1200px;width:100%;align-items:stretch;align-content:start;align-self:stretch}.gallery-thumb-button{display:block;border:1px solid var(--color-border);padding:0;background:color-mix(in oklab,var(--color-bg-soft) 88%,transparent);border-radius:14px;overflow:hidden;cursor:pointer;width:100%;aspect-ratio:4 / 3;position:relative;transition:transform .2s ease,box-shadow .2s ease}.gallery-thumb-button.is-tip-target{scroll-margin-top:8.8rem}.gallery-thumb-button.is-tip-target:after{content:"";position:absolute;inset:7px;border-radius:10px;border:1.5px solid rgba(125,211,252,.82);box-shadow:inset 0 0 #7dd3fc33;transform-origin:center;animation:gallery-tip-target-pulse 1.25s ease-out infinite;pointer-events:none}@keyframes gallery-tip-target-pulse{0%{opacity:1;transform:scale(.96);box-shadow:inset 0 0 #7dd3fc38}72%{opacity:.85;transform:scale(1);box-shadow:inset 0 0 0 4px #7dd3fc1a}to{opacity:0;transform:scale(1.05);box-shadow:inset 0 0 0 10px #7dd3fc00}}.gallery-thumb-button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 10px 24px #02061757}.gallery-thumb-image{width:100%;height:100%;min-height:0;display:block;object-fit:contain;background:var(--color-bg-soft)}.gallery-thumb-overlay{position:absolute;inset:auto 0 0;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem .7rem;font-size:.72rem;font-weight:600;color:#f8fafc;letter-spacing:.02em;background:linear-gradient(180deg,#02061700,#020617c7 48%,#020617f0);opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;pointer-events:none}.gallery-thumb-button:focus-visible .gallery-thumb-overlay{opacity:1;transform:translateY(0)}html[data-theme=light] .gallery-thumb-overlay{background:linear-gradient(180deg,#312e8100,#312e81a8 52%,#1e1b4bdb)}.gallery-close-btn{min-width:116px;height:42px;border-radius:14px;border:1px solid color-mix(in oklab,var(--color-primary) 18%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 92%,transparent);color:var(--color-text);padding:.42rem .82rem;display:inline-flex;align-items:center;justify-content:center;gap:.52rem;font-size:.81rem;font-weight:600;letter-spacing:.01em;cursor:pointer;box-shadow:0 10px 22px #0206172e;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:transform .18s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.gallery-close-btn-icon{width:22px;height:22px;border-radius:10px;border:1px solid color-mix(in oklab,var(--color-primary) 18%,var(--color-border));display:inline-flex;align-items:center;justify-content:center;color:var(--color-muted);background:color-mix(in oklab,var(--color-bg) 90%,transparent)}.gallery-close-btn:focus-visible{outline:2px solid rgba(125,211,252,.78);outline-offset:2px}html[data-theme=light] .gallery-mobile-tutorial{border-color:#94a3b83d;background:#ffffffe6;color:#1f2937}html[data-theme=light] .gallery-mobile-tutorial-title{color:#1f293799}html[data-theme=light] .gallery-mobile-tutorial-line{color:#1f2937e0}html[data-theme=light] .gallery-mobile-tutorial-close{background:#ffffffd1;border-color:#94a3b838;color:#475569e6}html[data-theme=light] .gallery-mobile-tutorial-step{border-color:#94a3b83d;background:#f1f5f9e6;color:#0f172ae6}html[data-theme=light] .gallery-close-btn{border-color:#818cf838;background:#fafafcf0;color:#1f2937;box-shadow:0 10px 20px #0f172a14}html[data-theme=light] .gallery-close-btn-icon{border-color:#818cf833;color:#475569;background:#ffffffeb}html[data-theme=light] .gallery-thumb-button{border-color:#818cf847;background:linear-gradient(145deg,#f8f6fff0,#f0f5ffeb);box-shadow:0 10px 20px #4f46e514}html[data-theme=light] .gallery-thumb-button:hover{box-shadow:0 14px 24px #4f46e524}.lightbox-header{gap:1rem}.lightbox-shell{position:relative;isolation:isolate;animation:lightbox-shell-enter .28s cubic-bezier(.22,1,.36,1)}@keyframes lightbox-shell-enter{0%{opacity:0;transform:translateY(8px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}.lightbox-title{font-size:.95rem;font-weight:600}.lightbox-header-actions{display:flex;align-items:center;gap:.6rem}.lightbox-zoom-controls{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem;border-radius:999px;border:1px solid var(--color-border);background:color-mix(in oklab,var(--color-bg-soft) 90%,transparent)}.lightbox-icon-btn{width:34px;height:34px;border:1px solid var(--color-border);border-radius:999px;background:color-mix(in oklab,var(--color-bg) 86%,transparent);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .14s ease,border-color .2s ease,background .2s ease}.lightbox-icon-btn:active{transform:scale(.95)}.lightbox-zoom-level{min-width:42px;text-align:center;font-size:.74rem;color:var(--color-muted)}.lightbox-reset-btn{border:1px solid var(--color-border);background:color-mix(in oklab,var(--color-bg) 90%,transparent);color:var(--color-text);border-radius:999px;font-size:.74rem;padding:.35rem .58rem;cursor:pointer}.lightbox-close-btn{width:38px;height:38px;border:1px solid color-mix(in oklab,var(--color-primary) 16%,var(--color-border));border-radius:12px;background:color-mix(in oklab,var(--color-bg-soft) 94%,transparent);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 22px #02061729;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.gallery-experience-shell .lightbox-image-container{position:relative;padding-inline:4.2rem}.lightbox-media-stage{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.lightbox-media-stage--open{animation:lightbox-media-open .32s cubic-bezier(.22,1,.36,1) both}.lightbox-media-stage--next{animation:lightbox-media-next .26s cubic-bezier(.22,1,.36,1) both}.lightbox-media-stage--prev{animation:lightbox-media-prev .26s cubic-bezier(.22,1,.36,1) both}@keyframes lightbox-media-open{0%{opacity:0;transform:scale(.96);filter:blur(5px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes lightbox-media-next{0%{opacity:0;transform:translate(24px) scale(.985);filter:blur(4px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}@keyframes lightbox-media-prev{0%{opacity:0;transform:translate(-24px) scale(.985);filter:blur(4px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}.lightbox-nav-btn{position:absolute;top:50%;transform:translate3d(0,-50%,0);z-index:3;width:clamp(42px,4.8vw,52px);height:clamp(42px,4.8vw,52px);padding:0;border-radius:999px;border:1px solid var(--color-border);background:color-mix(in oklab,var(--color-bg-soft) 94%,transparent);color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 10px 26px #0206172e;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease,opacity .16s ease}.lightbox-desktop-zoom-hint{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:2rem;pointer-events:auto;animation:lightbox-desktop-hint-fade 6s cubic-bezier(.22,1,.36,1) forwards}.lightbox-desktop-zoom-hint:before{content:"";position:absolute;inset:0;background:#020617d6;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.lightbox-desktop-zoom-hint-stage{position:relative;z-index:1;width:min(92vw,560px);min-height:300px}.lightbox-desktop-zoom-hint-slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;opacity:0;text-align:center}.lightbox-desktop-zoom-hint-slide--zoom{animation:lightbox-desktop-slide-zoom 6s ease forwards}.lightbox-desktop-zoom-hint-slide--drag{animation:lightbox-desktop-slide-drag 6s ease forwards}.lightbox-desktop-zoom-hint-devices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.2rem;align-items:end}.lightbox-desktop-zoom-hint-device-block{display:flex;flex-direction:column;align-items:center;gap:.85rem}.lightbox-desktop-zoom-hint-device-label{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:#ffffff9e}.lightbox-desktop-zoom-hint-device{position:relative;flex-shrink:0;will-change:transform}.lightbox-desktop-zoom-hint-device--mouse{width:72px;height:104px;border-radius:36px;border:2px solid rgba(255,255,255,.96);background:transparent;box-shadow:0 18px 36px #02061729}.lightbox-desktop-zoom-hint-device--mouse:before{content:"";position:absolute;inset:-26px;border-radius:999px;border:1px solid rgba(255,255,255,.16);display:none}.lightbox-desktop-zoom-hint-mouse-split{position:absolute;top:0;left:50%;width:2px;height:34px;background:#ffffffe0;transform:translate(-50%)}.lightbox-desktop-zoom-hint-wheel{position:absolute;top:18px;left:50%;width:8px;height:18px;border-radius:999px;background:#fffffff5;transform:translate(-50%);will-change:transform,opacity}.lightbox-desktop-zoom-hint-mouse-press{position:absolute;top:2px;left:2px;width:calc(50% - 3px);height:36px;border-radius:32px 10px 18px 18px;border:1px solid rgba(255,255,255,.92);background:linear-gradient(180deg,#ffffff3d,#ffffff14),#ffffff05;opacity:0;transform:translateZ(0) scaleY(1);transform-origin:center top;will-change:transform,opacity}.lightbox-desktop-zoom-hint-device--trackpad{width:120px;height:84px;border-radius:18px;border:2px solid rgba(255,255,255,.94);background:transparent;box-shadow:0 18px 36px #02061729}.lightbox-desktop-zoom-hint-trackpad-notch{position:absolute;left:50%;top:10px;width:30px;height:3px;border-radius:999px;background:#ffffffa8;transform:translate(-50%)}.lightbox-desktop-zoom-hint-trackpad-finger{position:absolute;bottom:24px;width:14px;height:30px;border-radius:999px;border:1.6px solid rgba(255,255,255,.92);background:#ffffff08;will-change:transform,opacity}.lightbox-desktop-zoom-hint-trackpad-finger--left{left:42px}.lightbox-desktop-zoom-hint-trackpad-finger--right{right:42px}.lightbox-desktop-zoom-hint-trackpad-drag-finger{position:absolute;left:34px;bottom:20px;width:16px;height:34px;border-radius:999px;border:1.8px solid rgba(255,255,255,.94);background:#ffffff0a;opacity:0;transform:translate3d(0,10px,0);will-change:transform,opacity}.lightbox-desktop-zoom-hint-device--mouse-drag .lightbox-desktop-zoom-hint-wheel,.lightbox-desktop-zoom-hint-device--trackpad-drag .lightbox-desktop-zoom-hint-trackpad-finger,.lightbox-desktop-zoom-hint-device--trackpad-zoom .lightbox-desktop-zoom-hint-trackpad-drag-finger,.lightbox-desktop-zoom-hint-device--mouse-zoom .lightbox-desktop-zoom-hint-mouse-press{display:none}.lightbox-desktop-zoom-hint-slide--zoom .lightbox-desktop-zoom-hint-wheel{animation:lightbox-desktop-wheel-scroll-loop 1.45s cubic-bezier(.22,1,.36,1) 2 both}.lightbox-desktop-zoom-hint-slide--zoom .lightbox-desktop-zoom-hint-device--mouse,.lightbox-desktop-zoom-hint-slide--zoom .lightbox-desktop-zoom-hint-device--trackpad{animation:lightbox-desktop-device-bob 1.45s ease-in-out 2 both}.lightbox-desktop-zoom-hint-slide--zoom .lightbox-desktop-zoom-hint-trackpad-finger--left{animation:lightbox-desktop-trackpad-zoom-left 1.45s cubic-bezier(.22,1,.36,1) 2 both}.lightbox-desktop-zoom-hint-slide--zoom .lightbox-desktop-zoom-hint-trackpad-finger--right{animation:lightbox-desktop-trackpad-zoom-right 1.45s cubic-bezier(.22,1,.36,1) 2 both}.lightbox-desktop-zoom-hint-slide--drag .lightbox-desktop-zoom-hint-mouse-press{animation:lightbox-desktop-mouse-press-loop 1.45s cubic-bezier(.22,1,.36,1) 3s 2 both}.lightbox-desktop-zoom-hint-slide--drag .lightbox-desktop-zoom-hint-device--mouse{animation:lightbox-desktop-mouse-drag-circle 1.45s cubic-bezier(.22,1,.36,1) 3s 2 both}.lightbox-desktop-zoom-hint-slide--drag .lightbox-desktop-zoom-hint-device--trackpad{animation:lightbox-desktop-device-bob 1.45s ease-in-out 3s 2 both}.lightbox-desktop-zoom-hint-slide--drag .lightbox-desktop-zoom-hint-trackpad-drag-finger{animation:lightbox-desktop-trackpad-drag-loop 1.45s cubic-bezier(.22,1,.36,1) 3s 2 both}.lightbox-desktop-zoom-hint-copy{display:flex;flex-direction:column;align-items:center;gap:.32rem;text-align:center;min-height:4.4rem;width:min(92vw,420px)}.lightbox-desktop-zoom-hint-eyebrow{font-size:.73rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#ffffffb8}.lightbox-desktop-zoom-hint-text{max-width:34ch;font-size:clamp(.95rem,1.35vw,1.05rem);line-height:1.5;color:#fffffff0}.lightbox-nav-btn svg{width:clamp(18px,2.2vw,22px);height:clamp(18px,2.2vw,22px);flex-shrink:0}.lightbox-nav-btn-prev{left:max(.6rem,env(safe-area-inset-left))}.lightbox-nav-btn-next{right:max(.6rem,env(safe-area-inset-right))}.lightbox-nav-btn:active{transform:translate3d(0,-50%,0);opacity:1;box-shadow:0 10px 26px #0206172e}.lightbox-close-btn:active{transform:none;opacity:1;box-shadow:0 10px 22px #02061729}@media (hover: hover) and (pointer: fine){button.chip:hover,a.chip:hover,.cv-sort-btn:hover,.cv-more-button:hover,.cv-back-button:hover,.graphics-folder-view-all:hover,.gallery-close-btn:hover,.gallery-mobile-tutorial-close:hover,.lightbox-icon-btn:hover,.lightbox-reset-btn:hover,.lightbox-close-btn:hover,.project-link:hover{box-shadow:0 10px 22px #02061724}.gallery-thumb-button:hover .gallery-thumb-overlay{opacity:1;transform:translateY(0)}.gallery-close-btn:hover{transform:translateY(-1px);border-color:color-mix(in oklab,var(--color-primary) 44%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);box-shadow:0 14px 28px #02061733}.gallery-mobile-tutorial-close:hover{border-color:color-mix(in oklab,var(--color-primary) 38%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent)}.lightbox-icon-btn:hover,.lightbox-reset-btn:hover{border-color:color-mix(in oklab,var(--color-primary) 55%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 88%,transparent);box-shadow:0 14px 32px #0206173d}.lightbox-close-btn:hover{border-color:color-mix(in oklab,var(--color-primary) 55%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 88%,transparent);box-shadow:0 12px 26px #02061733;transform:none}.lightbox-nav-btn:hover{transform:translate3d(0,-50%,0);border-color:color-mix(in oklab,var(--color-primary) 55%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 88%,transparent);box-shadow:0 10px 26px #0206172e}}.gallery-close-btn:active{transform:translateY(0) scale(.98)}.gallery-empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-muted)}.gallery-empty-state--loading{flex-direction:column;gap:.62rem;font-size:.84rem;letter-spacing:.03em;text-transform:uppercase}.gallery-empty-network{width:min(86vw,240px);height:64px;border-radius:12px;border:1px solid color-mix(in oklab,var(--color-border) 75%,transparent);background:radial-gradient(circle at 16% 48%,rgba(56,189,248,.85) 0 2px,transparent 2.5px),radial-gradient(circle at 34% 24%,rgba(129,140,248,.8) 0 2px,transparent 2.5px),radial-gradient(circle at 54% 56%,rgba(56,189,248,.82) 0 2px,transparent 2.5px),radial-gradient(circle at 72% 30%,rgba(129,140,248,.8) 0 2px,transparent 2.5px),radial-gradient(circle at 86% 54%,rgba(56,189,248,.82) 0 2px,transparent 2.5px),linear-gradient(18deg,transparent 20%,rgba(129,140,248,.28) 21%,transparent 23%),linear-gradient(162deg,transparent 45%,rgba(56,189,248,.24) 46%,transparent 48%),color-mix(in oklab,var(--color-bg-soft) 88%,transparent);animation:gallery-empty-network-pulse 1.8s ease-in-out infinite}@keyframes gallery-empty-network-pulse{0%,to{opacity:.65;transform:scale(.99)}50%{opacity:1;transform:scale(1)}}.lightbox-controls{flex-shrink:0;display:flex;justify-content:center;align-items:center;gap:8px;padding:.68rem 1.1rem;border-top:1px solid var(--color-border);background:color-mix(in oklab,var(--color-bg-soft) 86%,transparent)}.lightbox-hint{font-size:.75rem;color:var(--color-muted);margin:0;text-align:center}@media (min-width: 768px){.lightbox-controls{display:none}}@keyframes lightbox-desktop-hint-fade{0%{opacity:0;transform:scale(.992)}8%,92%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.006)}}@keyframes lightbox-desktop-wheel-scroll{0%{opacity:0;transform:translate(-50%) translateY(-2px) scaleY(.94)}15%{opacity:1}55%{opacity:1;transform:translate(-50%) translateY(20px) scaleY(1)}to{opacity:0;transform:translate(-50%) translateY(26px) scaleY(.94)}}@keyframes lightbox-desktop-wheel-scroll-loop{0%{opacity:.28;transform:translate(-50%) translateY(-2px) scaleY(.94)}24%,68%{opacity:1;transform:translate(-50%) translateY(15px) scaleY(1)}to{opacity:.28;transform:translate(-50%) translateY(20px) scaleY(.94)}}@keyframes lightbox-desktop-slide-zoom{0%{opacity:0;transform:translateY(8px)}6%,44%{opacity:1;transform:translateY(0)}50%,to{opacity:0;transform:translateY(-6px)}}@keyframes lightbox-desktop-slide-drag{0%,50%{opacity:0;transform:translateY(8px)}56%,94%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@keyframes lightbox-desktop-device-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes lightbox-desktop-mouse-float{0%,to{transform:translateY(0)}12%,22%{transform:translateY(-6px)}68%,84%{transform:translate3d(10px,-2px,0)}}@keyframes lightbox-desktop-mouse-ring{0%{opacity:0;transform:scale(.82)}14%,28%{opacity:.5}to{opacity:0;transform:scale(1.18)}}@keyframes lightbox-desktop-mouse-drag-pointer{0%,56%{opacity:0;transform:translate3d(0,10px,0) rotate(-18deg)}66%,84%{opacity:1;transform:translate3d(32px,-2px,0) rotate(-10deg)}92%,to{opacity:0;transform:translate3d(40px,-6px,0) rotate(-8deg)}}@keyframes lightbox-desktop-trackpad-float{0%,to{transform:translateY(0)}14%,26%{transform:translateY(-4px)}70%,86%{transform:translate3d(8px,-2px,0)}}@keyframes lightbox-desktop-trackpad-swipe{0%,0%,4%,52%{opacity:0;transform:translateY(0)}16%,30%{opacity:1;transform:translateY(-8px)}38%,to{opacity:0;transform:translateY(-12px)}}@keyframes lightbox-desktop-trackpad-drag{0%,58%{opacity:0;transform:translate3d(0,10px,0)}70%,88%{opacity:1;transform:translate3d(34px,-2px,0)}to{opacity:0;transform:translate3d(42px,-6px,0)}}@keyframes lightbox-desktop-trackpad-zoom-left{0%{opacity:.38;transform:translate3d(0,-12px,0)}30%,68%{opacity:1;transform:translate3d(0,4px,0)}to{opacity:.38;transform:translate3d(0,12px,0)}}@keyframes lightbox-desktop-trackpad-zoom-right{0%{opacity:.38;transform:translate3d(0,-12px,0)}30%,68%{opacity:1;transform:translate3d(0,4px,0)}to{opacity:.38;transform:translate3d(0,12px,0)}}@keyframes lightbox-desktop-mouse-press-loop{0%{opacity:0;transform:translateZ(0) scaleY(1)}18%,82%{opacity:1;transform:translate3d(0,2px,0) scaleY(.92)}to{opacity:0;transform:translateZ(0) scaleY(1)}}@keyframes lightbox-desktop-mouse-drag-circle{0%{transform:translateZ(0)}22%{transform:translate3d(4px,-2px,0)}48%{transform:translate3d(6px,1px,0)}72%{transform:translate3d(3px,4px,0)}to{transform:translateZ(0)}}@keyframes lightbox-desktop-trackpad-drag-loop{0%{opacity:0;transform:translate3d(0,10px,0)}24%,78%{opacity:1;transform:translate3d(28px,-2px,0)}to{opacity:0;transform:translate3d(34px,-5px,0)}}@media (max-width: 767px){.gallery-header{padding:.85rem}.gallery-grid-shell{padding:.8rem}.gallery-grid-shell--with-tutorial{scroll-padding-top:10.4rem}.gallery-mobile-tutorial{width:100%;top:.35rem;padding:.78rem .78rem .8rem}.gallery-mobile-tutorial-title{font-size:.7rem}.gallery-mobile-tutorial-close{width:26px;height:26px}.gallery-mobile-tutorial-line{font-size:.72rem;gap:.56rem}.gallery-mobile-tutorial-step{width:1.4rem;height:1.4rem;font-size:.68rem}.gallery-thumbs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.gallery-thumbs-grid>*{min-width:0}.gallery-thumb-button{display:flex;align-items:stretch;min-height:120px;aspect-ratio:1 / 1}.gallery-thumb-button.is-tip-target{scroll-margin-top:10.8rem}.gallery-thumb-overlay{font-size:.68rem;padding:.5rem .55rem}.gallery-thumb-image{width:100%;height:100%;min-height:0}.lightbox-controls{position:sticky;bottom:0;z-index:2;padding-bottom:calc(.8rem + env(safe-area-inset-bottom))}.lightbox-header{align-items:flex-start}.lightbox-title{font-size:.86rem}.lightbox-header-actions{width:100%;justify-content:space-between}.lightbox-zoom-controls{gap:.3rem}.lightbox-icon-btn{width:32px;height:32px}.gallery-experience-shell .lightbox-image-container{padding-inline:2.8rem}.lightbox-nav-btn{width:42px;height:42px;box-shadow:0 8px 20px #02061724}.lightbox-nav-btn-prev{left:max(.4rem,env(safe-area-inset-left))}.lightbox-nav-btn-next{right:max(.4rem,env(safe-area-inset-right))}}@media (prefers-reduced-motion: reduce){.project-card-featured:before,.lightbox-desktop-zoom-hint,.lightbox-desktop-zoom-hint-slide,.lightbox-desktop-zoom-hint-device--mouse,.lightbox-desktop-zoom-hint-device--mouse:before,.lightbox-desktop-zoom-hint-wheel,.lightbox-desktop-zoom-hint-mouse-press,.lightbox-desktop-zoom-hint-device--trackpad,.lightbox-desktop-zoom-hint-trackpad-finger,.lightbox-desktop-zoom-hint-trackpad-drag-finger,.lightbox-desktop-zoom-hint-text{animation:none}}.projects-section-header{align-items:flex-start;gap:.95rem;padding-bottom:.85rem;border-bottom:1px solid color-mix(in oklab,var(--color-border) 78%,transparent)}.projects-section-header .section-title{flex:0 0 auto;margin:0;position:relative}.projects-section-header .section-title:after{content:"";display:block;width:2.4rem;height:2px;margin-top:.42rem;border-radius:999px;background:color-mix(in oklab,var(--color-accent) 58%,var(--color-text))}.projects-controls{display:flex;flex-direction:column;gap:.62rem;width:100%;min-width:0}.projects-tab-shell{display:flex;width:100%;min-width:0;gap:0;padding:0;border-radius:0;border:0;border-bottom:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:transparent;box-shadow:none}.projects-tab{flex:1 1 0;min-width:0;min-height:2.4rem;position:relative;border:0;border-radius:0;padding:.55rem .76rem .72rem;background:transparent;color:var(--color-muted);font:inherit;font-size:.82rem;font-weight:740;letter-spacing:.02em;line-height:1;text-align:center;cursor:pointer;transition:color .18s ease,border-color .18s ease,background-color .18s ease}.projects-tab:before{content:"";display:inline-block;width:.38rem;height:.38rem;margin-right:.46rem;border:1px solid currentColor;border-radius:999px;opacity:.62;vertical-align:.08em}.projects-tab:after{content:"";position:absolute;right:.58rem;bottom:-1px;left:.58rem;height:2px;border-radius:999px 999px 0 0;background:currentColor;opacity:0;transform:scaleX(.62);transform-origin:center;transition:opacity .18s ease,transform .18s ease}.projects-tab.is-active{background:transparent;color:var(--color-text)}.projects-tab.is-active:before{background:currentColor;opacity:1}.projects-tab.is-active:after{opacity:1;transform:scaleX(1)}.projects-tab:focus-visible,.projects-sort-controls .cv-sort-btn:focus-visible{outline:2px solid color-mix(in oklab,var(--color-accent) 46%,transparent);outline-offset:2px}.projects-sort-controls{align-items:center;margin:0;gap:.36rem}.projects-sort-label{font-size:.78rem;line-height:1;margin-right:.06rem;color:color-mix(in oklab,var(--color-muted) 86%,var(--color-text))}.projects-sort-controls .cv-sort-btn{border-radius:9px;padding:.34rem .58rem;background:transparent}.projects-sort-controls .cv-sort-btn.is-active{background:color-mix(in oklab,var(--color-bg-soft) 84%,transparent)}.projects-sort-controls .cv-sort-btn:hover{transform:none;box-shadow:none}@media (hover: hover) and (pointer: fine){.projects-tab:hover{background:color-mix(in oklab,var(--color-bg-soft) 32%,transparent);color:var(--color-text)}.projects-tab:hover:after{opacity:.42;transform:scaleX(.78)}.projects-tab.is-active:hover:after{opacity:1;transform:scaleX(1)}.projects-sort-controls .cv-sort-btn:hover{border-color:color-mix(in oklab,var(--color-accent) 28%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 48%,transparent);color:var(--color-text);box-shadow:none}.projects-sort-controls .cv-sort-btn.is-active:hover{background:color-mix(in oklab,var(--color-bg-soft) 92%,transparent)}}@media (min-width: 640px){.projects-section-header{flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.85rem 1.15rem}.projects-controls{width:min(100%,30rem);margin-left:auto}}html[data-theme=light] .projects-tab-shell{background:transparent;border-color:#94a3b852;box-shadow:none}html[data-theme=light] .projects-tab.is-active{background:transparent}html[data-theme=light] .projects-sort-controls .cv-sort-btn.is-active{background:#ffffffb8}@media (hover: hover) and (pointer: fine){html[data-theme=light] .projects-tab:hover{background:#ffffff70}html[data-theme=light] .projects-sort-controls .cv-sort-btn:hover{background:#ffffff9e}html[data-theme=light] .projects-sort-controls .cv-sort-btn.is-active:hover{background:#ffffffdb}}.contact-grid{display:flex;flex-direction:column;gap:1rem}.contact-shell{margin-top:.9rem}.contact-form-card,.contact-info-card{display:flex;flex-direction:column;gap:.94rem;min-width:0;padding:.94rem .98rem;border-radius:18px;background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);box-shadow:0 10px 22px #02061712}.contact-form-card--success{border-color:#22c55e5c;box-shadow:0 14px 28px #22c55e14}.contact-card-head{display:flex;flex-direction:column;gap:.24rem}.contact-card-title{margin:0;font-size:1.14rem;font-weight:720;line-height:1.25;color:var(--color-text);font-family:Space Grotesk,Ubuntu,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:-.01em}.contact-card-subtitle{margin:0;max-width:34ch;font-size:.86rem;line-height:1.6;color:var(--color-muted)}.contact-field{display:flex;flex-direction:column;gap:.36rem}.contact-label{font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.contact-input{width:100%;min-width:0;border-radius:16px;border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);padding:.76rem .88rem;background:color-mix(in oklab,var(--color-bg) 84%,var(--color-bg-soft));color:var(--color-text);font:inherit;font-size:.93rem;font-weight:500;line-height:1.55;outline:none;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}.contact-input::placeholder{color:var(--color-muted)}.contact-input:focus{border-color:color-mix(in oklab,var(--color-primary) 26%,var(--color-border));box-shadow:0 0 0 3px color-mix(in oklab,var(--color-primary) 12%,transparent)}.contact-input--textarea{min-height:128px;resize:vertical}.contact-error{margin-top:-.15rem;font-size:.78rem;line-height:1.45;color:#f87171}.contact-submit{min-height:42px;width:100%;margin-top:.1rem;border:1px solid rgba(79,70,229,.24);border-radius:999px;background:#4f46e5;color:#fff;font-size:.84rem;font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;cursor:pointer;transition:border-color .22s ease,background-color .22s ease,box-shadow .22s ease,opacity .22s ease}.contact-submit:disabled{opacity:.72;cursor:default}.contact-submit.is-success{border-color:#22c55e47;background:#16a34a}.contact-info-card{justify-content:flex-start;min-width:0;width:100%;padding:.15rem 0;background:transparent;border:none;box-shadow:none}.contact-methods{display:flex;flex-direction:column;gap:0}.contact-method{display:flex;align-items:center;gap:.85rem;min-width:0;padding:.85rem 0;border-radius:0;border:none;border-bottom:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:transparent;color:var(--color-text);text-decoration:none;transition:border-color .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.contact-method--static{cursor:default}.contact-method:last-child{padding-bottom:0;border-bottom:none}.contact-method-icon{width:1.7rem;height:1.7rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:0;border:none;background:transparent;color:var(--color-text)}.contact-method-icon svg{width:1.18rem;height:1.18rem;display:block;stroke-width:1.8}.contact-method-copy{min-width:0;display:flex;flex-direction:column;gap:.16rem}.contact-method-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.contact-method-value{min-width:0;font-size:.92rem;line-height:1.5;font-weight:500;color:var(--color-text);overflow-wrap:anywhere}.contact-socials{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;min-width:0;gap:.95rem;padding-top:.55rem;overflow:hidden}.contact-social-link{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:auto;height:auto;border-radius:0;border:none;background:transparent;color:var(--color-text);text-decoration:none;transition:transform .22s cubic-bezier(.22,1,.36,1),color .22s ease,opacity .22s ease;opacity:.82}.contact-social-icon-image{width:18px;height:18px;border-radius:999px;object-fit:cover;display:block}@media (min-width: 640px){.contact-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(240px,.84fr);gap:1.4rem;align-items:start}.contact-grid>*{min-width:0;overflow:hidden}.contact-info-card{padding-left:1.2rem;border-left:1px solid color-mix(in oklab,var(--color-border) 84%,transparent)}}@media (hover: hover) and (pointer: fine){.contact-submit:not(:disabled):hover{border-color:#4f46e557;background:#4338ca;box-shadow:0 10px 22px #4f46e52e}.contact-method:not(.contact-method--static):hover,.contact-social-link:hover{transform:translate(3px);border-color:color-mix(in oklab,var(--color-primary) 22%,var(--color-border));box-shadow:none}.contact-social-link:hover{transform:translateY(-1px);color:var(--color-primary);opacity:1}}html[data-theme=light] .contact-form-card,html[data-theme=light] .contact-info-card{background:#f9fafbf5;border-color:#94a3b838;box-shadow:0 10px 22px #0f172a0d}html[data-theme=light] .contact-info-card{background:transparent;border:none;border-left:1px solid rgba(148,163,184,.22);box-shadow:none}html[data-theme=light] .contact-form-card--success{border-color:#22c55e47;box-shadow:0 14px 28px #22c55e0f}html[data-theme=light] .contact-input,html[data-theme=light] .contact-social-link{background:#ffffffeb;border-color:#94a3b833}html[data-theme=light] .contact-social-link{background:transparent;border:none}html[data-theme=light] .contact-method{background:transparent;border-bottom-color:#94a3b838}html[data-theme=light] .contact-method-icon{background:transparent;border:none}html[data-theme=light] .contact-submit{border-color:#4f46e533;background:#4f46e5}html[data-theme=light] .contact-submit.is-success{border-color:#16a34a38;background:#16a34a}@media (max-width: 767px){.contact-shell{margin-top:.72rem}.contact-form-card,.contact-info-card{padding:.86rem .88rem;gap:.8rem}.contact-info-card{padding:.05rem 0}.contact-card-title{font-size:1.05rem}.contact-card-subtitle{font-size:.82rem}.contact-input{border-radius:14px;padding:.72rem .82rem}.contact-input--textarea{min-height:112px}.contact-method{padding:.7rem 0}}.desktop-grid{display:block}.desktop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.desktop-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-muted);transition:color .6s cubic-bezier(.4,0,.2,1)}.desktop-logo{max-height:32px;max-width:120px;object-fit:contain;display:block}.desktop-column-left,.desktop-column-right{min-width:0}@media (min-width: 1024px){.desktop-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr);gap:2.75rem;align-items:flex-start}.desktop-grid--resizable{grid-template-columns:minmax(0,var(--home-column-share)) 32px minmax(0,var(--content-column-share));column-gap:0}.desktop-column-left{position:sticky;top:calc(var(--nav-height) - .15rem);align-self:flex-start;padding-top:0}.desktop-column-right{padding-top:.75rem}.desktop-grid--resizable .desktop-column-left{padding-right:1rem}.desktop-grid--resizable .desktop-column-right{padding-left:1rem}.desktop-grid-splitter{position:sticky;top:calc(var(--nav-height) - .15rem);align-self:flex-start;z-index:2;display:flex;align-items:center;justify-content:center;height:calc(100vh - var(--nav-height));min-height:0;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none;user-select:none}.desktop-grid-splitter:before{position:absolute;inset:0 15px;content:"";background:color-mix(in oklab,var(--color-border) 70%,transparent);transition:background-color .16s ease}.desktop-grid-splitter span{position:relative;width:14px;height:44px;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-border) 86%,transparent);background-color:var(--color-bg-soft);background:radial-gradient(circle,var(--color-muted) 1.2px,transparent 1.4px) center / 4px 8px repeat-y,var(--color-bg-soft);box-shadow:0 2px 8px #00000024}.desktop-grid-splitter:hover:before,.desktop-grid-splitter:focus-visible:before{background:var(--color-accent)}.desktop-grid-splitter:hover span,.desktop-grid-splitter:focus-visible span{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--color-accent) 22%,transparent)}.desktop-grid-splitter:focus-visible{outline:none}.desktop-grid--cv-expanded{grid-template-columns:minmax(0,1fr)}.desktop-grid--cv-expanded .desktop-column-left{display:none}.desktop-grid--cv-expanded .desktop-column-right{padding-left:0}.desktop-cv-layout-actions{display:flex;justify-content:flex-end;margin-bottom:.75rem}.desktop-cv-expand{padding:.45rem .7rem;border:1px solid color-mix(in oklab,var(--color-border) 80%,transparent);border-radius:6px;background:color-mix(in oklab,var(--color-bg-soft) 90%,transparent);color:var(--color-fg);font:inherit;font-size:.8rem;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.desktop-cv-expand:hover,.desktop-cv-expand:focus-visible{border-color:var(--color-accent)}.desktop-cv-expand:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}}.skills-grid{display:grid;gap:.78rem;align-items:start;grid-template-columns:minmax(0,1fr)}@media (min-width: 360px){.skills-grid{display:block;column-count:2;column-gap:.78rem}.skills-grid>*{break-inside:avoid;margin-bottom:.78rem}}@media (min-width: 980px){.skills-grid{display:block;column-count:3;column-gap:.85rem}.skills-grid>*{break-inside:avoid;margin-bottom:.85rem}}.skills-card{padding:1rem;display:flex;flex-direction:column;align-items:stretch;min-height:0;gap:.85rem;justify-content:flex-start;border-radius:18px;background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);border:1px solid color-mix(in oklab,var(--color-border) 92%,transparent);box-shadow:none;transform:none;transition:none}.skills-list{display:flex;flex-direction:column;gap:.55rem}.skills-chips{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.skill-chip{display:flex;align-items:center;gap:.68rem;min-height:50px;padding:.62rem .74rem;border-radius:14px;background:color-mix(in oklab,var(--color-bg) 78%,var(--color-bg-soft));border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);font-size:.88rem;box-shadow:none;transform:none;transition:none}.chip-name{display:inline-block;flex:1;min-width:0;font-size:.9rem;font-weight:500;line-height:1.3}.skills-card-header{font-size:.72rem;font-weight:700;margin-bottom:0;padding-bottom:.55rem;border-bottom:1px solid color-mix(in oklab,var(--color-border) 84%,transparent);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted)}.skills-card-body{display:block}html[data-theme=light] .skills-card{background:#f9fafbf5;border-color:#94a3b838;box-shadow:none}html[data-theme=light] .skills-card-header{color:#64748b}html[data-theme=light] .skill-chip,html[data-theme=light] .skill-icon{background:#ffffffeb;border-color:#94a3b833}.skill-row{display:flex;flex-direction:row;gap:.5rem;align-items:center}.skill-main{display:flex;align-items:center;justify-content:flex-start;gap:.75rem}@media (min-width: 640px){.skill-row{flex-direction:column;gap:.25rem}.skill-main{justify-content:space-between;gap:.5rem}}.skill-icon{width:2.2rem;height:2.2rem;display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:12px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft));font-size:1.08rem;color:var(--color-text);box-shadow:none;transform:none;transition:none}.skill-icon-img{width:1.3rem;height:1.3rem;border-radius:0;object-fit:contain;display:block}.skill-name{flex:1;font-size:.9rem}.skill-percent{font-size:1.1rem;font-weight:600;color:var(--color-muted)}.skill-bar{position:relative;width:100%;height:6px;border-radius:999px;background:#0f172ab3;overflow:hidden}.skill-bar-fill{position:absolute;inset:0;border-radius:inherit;background:var(--color-accent);width:var(--skill-level);transition:none}.home-hero{display:flex;flex-direction:column;align-items:center;gap:1.2rem}.home-avatar-shell{display:flex;justify-content:center;width:100%}.home-avatar-frame{position:relative;width:220px;height:220px;border-radius:32% 68% 60% 40%/38% 42% 58% 62%;background:radial-gradient(circle at 14% 12%,rgba(99,102,241,.26),transparent 42%),radial-gradient(circle at 86% 86%,rgba(56,189,248,.22),transparent 44%),color-mix(in oklab,var(--color-bg-soft) 96%,transparent);border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);padding:5px;box-shadow:0 22px 42px #02061729;overflow:hidden;animation:avatar-float 3.4s ease-in-out infinite;will-change:transform;transition:border-color .22s ease,box-shadow .22s ease,transform .22s cubic-bezier(.22,1,.36,1)}.home-avatar-frame:before{content:"";position:absolute;inset:-10%;border-radius:inherit;background:radial-gradient(circle,rgba(99,102,241,.18),transparent 62%);opacity:0;transform:scale(.92);transition:opacity .26s ease,transform .26s ease;pointer-events:none;z-index:0}.home-avatar-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:32% 68% 60% 40%/38% 42% 58% 62%;filter:saturate(.98) contrast(1.02);position:relative;z-index:1}@keyframes avatar-float{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.015)}}@media (hover: hover) and (pointer: fine){.home-avatar-frame:hover{transform:translateY(-1px);border-color:color-mix(in oklab,var(--color-primary) 18%,var(--color-border));box-shadow:0 24px 42px #0206172e,0 0 28px #6366f124}.home-avatar-frame:hover:before{opacity:1;transform:scale(1)}}.home-text{text-align:center;max-width:42rem}.home-title{font-size:clamp(2rem,4.2vw,2.8rem);font-weight:760;margin:0 0 .42rem;letter-spacing:-.03em;font-family:Space Grotesk,Ubuntu,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:color .6s cubic-bezier(.4,0,.2,1)}.home-subtitle{margin:0 0 1rem;font-size:1.02rem;font-weight:600;letter-spacing:.01em;color:var(--color-muted);transition:color .6s cubic-bezier(.4,0,.2,1)}.home-description{margin:.2rem auto 0;width:min(100%,39rem);margin-inline:auto;padding-top:1.1rem;border-top:1px solid color-mix(in oklab,var(--color-border) 82%,transparent);text-align:center;font-size:1rem;font-weight:520;line-height:1.72;letter-spacing:-.01em;color:color-mix(in oklab,var(--color-text) 90%,var(--color-muted) 10%);transition:color .6s cubic-bezier(.4,0,.2,1)}html[data-theme=light] .home-avatar-frame{background:radial-gradient(circle at 14% 12%,rgba(99,102,241,.14),transparent 42%),radial-gradient(circle at 86% 86%,rgba(56,189,248,.14),transparent 44%),#f9fafbf5;border-color:#94a3b838;box-shadow:0 16px 30px #0f172a14}.home-socials{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center}.cv-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.15rem}.cv-header-copy{min-width:0}.cv-back-button{border:1px solid rgba(148,163,184,.45);border-radius:999px;background:#0f172a59;color:var(--color-muted);font-size:.77rem;letter-spacing:.02em;text-transform:uppercase;padding:.42rem .88rem;font-weight:600;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.cv-back-button:hover{border-color:#7c3aed9e;background:#0f172a9e;color:var(--color-fg);transform:translateY(-1px)}@media (max-width: 767px){.cv-back-button{padding-inline:.72rem}.cv-header{align-items:flex-start}}@media (min-width: 1024px){.home-hero{align-items:center}.home-text{text-align:center}.home-avatar-shell{margin-top:0}}@media (max-width: 767px){.home-avatar-frame{width:198px;height:198px;border-radius:30% 70% 60% 40%/36% 42% 58% 64%}.home-avatar-img{border-radius:30% 70% 60% 40%/36% 42% 58% 64%}.home-hero{gap:1rem}.home-text{max-width:100%}.home-title{font-size:clamp(1.9rem,9vw,2.45rem);margin-bottom:.36rem}.home-subtitle{margin-bottom:.82rem;font-size:.94rem}.home-description{width:min(100%,32rem);padding-top:.88rem;font-size:.92rem;line-height:1.68}}html[data-theme=light] .card{background:radial-gradient(circle at 90% -12%,rgba(183,197,226,.14),transparent 38%),linear-gradient(145deg,#fbf9f5f5,#f1ece4f0);border-color:#6d75b824;box-shadow:0 16px 36px #493f6a14}.cv-shell{margin-top:.9rem;display:flex;flex-direction:column;gap:.9rem}.cv-hero{border-radius:18px;border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);padding:1rem 1rem 1.04rem;background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);box-shadow:0 14px 28px #0206171a}.cv-hero-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem}.cv-hero-kicker{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted)}.cv-years-pill{display:inline-flex;align-items:center;padding:.26rem .58rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);color:var(--color-text);background:color-mix(in oklab,var(--color-bg) 84%,var(--color-bg-soft));font-size:.7rem;font-weight:600}.cv-summary{margin:.72rem 0 0;line-height:1.72;font-size:.93rem;color:color-mix(in oklab,var(--color-text) 88%,var(--color-muted) 12%)}.cv-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem}.cv-panel{border-radius:18px;border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);padding:.95rem;min-width:0;box-shadow:0 14px 28px #02061714}.cv-panel-main,.cv-panel-side{min-width:0}.cv-side-section+.cv-side-section{margin-top:.85rem;padding-top:.85rem;border-top:1px solid color-mix(in oklab,var(--color-border) 88%,transparent)}.cv-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.85rem}.cv-panel-count{display:none}.cv-sort-controls{display:flex;flex-wrap:wrap;gap:.45rem;margin:-.08rem 0 .88rem}.cv-sort-btn{border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);border-radius:999px;padding:.3rem .68rem;background:color-mix(in oklab,var(--color-bg) 84%,var(--color-bg-soft));color:var(--color-muted);font-size:.72rem;letter-spacing:.03em;font-weight:600;cursor:pointer;transition:color .18s ease,border-color .18s ease,background-color .18s ease,transform .18s ease}.cv-sort-btn:hover{color:var(--color-text);border-color:color-mix(in oklab,var(--color-primary) 22%,var(--color-border))}.cv-sort-btn.is-active{border-color:color-mix(in oklab,var(--color-primary) 28%,var(--color-border));color:var(--color-text);background:color-mix(in oklab,var(--color-bg) 76%,var(--color-bg-soft))}.cv-more-button{margin-top:.86rem;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);border-radius:999px;padding:.42rem .82rem;background:color-mix(in oklab,var(--color-bg) 84%,var(--color-bg-soft));color:var(--color-muted);font-size:.78rem;font-weight:600;cursor:pointer;transition:color .18s ease,border-color .18s ease,background-color .18s ease,transform .18s ease}.cv-more-button:hover{color:var(--color-text);border-color:color-mix(in oklab,var(--color-primary) 22%,var(--color-border))}.cv-subtitle{font-size:.77rem;font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.14em;color:var(--color-muted)}.cv-timeline{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:.72rem;position:relative}.cv-timeline:before{content:"";position:absolute;left:8px;top:.7rem;bottom:0;width:2px;background:color-mix(in oklab,var(--color-border) 84%,transparent)}.cv-timeline-item{position:relative;padding-left:1.25rem}.cv-timeline-dot{position:absolute;left:2px;top:.74rem;width:12px;height:12px;border-radius:999px;border:2px solid color-mix(in oklab,var(--color-border) 82%,transparent);background:var(--color-bg-soft);z-index:1}.cv-entry-card{border-radius:14px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft));padding:.86rem .88rem}.cv-exp-title-row{display:flex;flex-direction:column;gap:.25rem}.cv-exp-role-line{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.cv-exp-company-heading{display:flex;align-items:center;gap:.55rem}.admin-experience-logo-preview{display:flex;align-items:center;gap:.5rem;margin-top:.35rem}.admin-experience-logo-preview img{width:2.75rem;height:2.75rem;border-radius:4px;background:var(--color-bg-soft);object-fit:contain}.cv-exp-company-logo{width:1.35rem;height:1.35rem;flex:0 0 auto;object-fit:contain;border-radius:3px;background:var(--color-bg-soft)}.cv-exp-company-logo--heading{width:2rem;height:2rem}.cv-exp-progression{display:grid;gap:.8rem;margin-top:.72rem}.cv-exp-position{position:relative;padding-left:1rem}.cv-exp-position:before{position:absolute;top:.38rem;bottom:-.9rem;left:.2rem;width:1px;background:color-mix(in oklab,var(--color-accent) 42%,var(--color-border));content:""}.cv-exp-position:last-child:before{bottom:.35rem}.cv-exp-position:after{position:absolute;top:.32rem;left:0;width:.42rem;height:.42rem;border:1px solid var(--color-accent);border-radius:50%;background:var(--color-bg-soft);content:""}.cv-exp-position--promotion:after{background:var(--color-accent)}.cv-exp-role{margin:0;font-size:.99rem;line-height:1.35;font-weight:650;color:var(--color-text)}.cv-exp-period{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.cv-exp-meta{margin-top:.4rem;display:flex;flex-wrap:wrap;gap:.35rem .65rem;font-size:.77rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted)}.cv-exp-company,.cv-exp-location{position:relative}.cv-exp-company{display:inline-flex;align-items:center;gap:.38rem}.cv-exp-meta>span+span:before{content:"";display:inline-block;width:4px;height:4px;margin-right:.45rem;margin-bottom:.1rem;border-radius:999px;background:#94a3b899}.cv-exp-details{margin:.54rem 0 0;line-height:1.68;font-size:.9rem;color:color-mix(in oklab,var(--color-text) 82%,var(--color-muted) 18%)}.cv-exp-bullets{margin:.56rem 0 0;padding-left:1rem;display:grid;gap:.34rem}.cv-exp-bullets li{line-height:1.55;font-size:.84rem;color:color-mix(in oklab,var(--color-text) 80%,var(--color-muted) 20%)}.cv-education-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.62rem}.cv-education-item{border-radius:14px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft));padding:.8rem .85rem .84rem}.cv-certification-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.72rem}.cv-certification-item{border-radius:14px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft));padding:.86rem .9rem .9rem}.cv-cert-thumbnail-link{display:block;margin:0 0 .72rem;overflow:hidden;border-radius:7px}.cv-cert-thumbnail,.cv-cert-thumbnail-placeholder{display:grid;width:100%;aspect-ratio:4 / 3;max-height:200px;object-fit:contain;border-radius:7px;background:color-mix(in oklab,var(--color-bg-soft) 76%,var(--color-bg))}.cv-cert-thumbnail-placeholder{place-items:center;color:var(--color-muted);font-size:.8rem;font-weight:650}.cv-cert-title{margin-top:0;font-size:.93rem;line-height:1.42;font-weight:700}.cv-cert-issuer{margin-top:.26rem;font-size:.8rem;font-weight:600;color:var(--color-muted)}.cv-cert-meta{margin-top:.38rem;color:var(--color-muted);font-size:.76rem;font-weight:600}.cv-cert-link{display:inline-flex;margin-top:.58rem;color:var(--color-primary);font-size:.78rem;font-weight:700;text-decoration:none}.cv-cert-link:hover{text-decoration:underline}.cv-cert-pill{display:inline-flex;align-items:center;border-radius:999px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg) 84%,var(--color-bg-soft));color:color-mix(in oklab,var(--color-text) 84%,var(--color-muted) 16%);padding:.2rem .52rem;font-size:.68rem;font-weight:650;letter-spacing:.03em}.cv-cert-pill-id{border-color:color-mix(in oklab,var(--color-primary) 18%,var(--color-border))}.cv-cert-details{margin:.5rem 0 0;font-size:.82rem;line-height:1.58;color:color-mix(in oklab,var(--color-text) 80%,var(--color-muted) 20%)}.cv-cert-id{letter-spacing:.02em}.cv-edu-degree{font-size:.93rem;line-height:1.45;font-weight:650}.cv-edu-school{margin-top:.18rem;font-size:.84rem;color:var(--color-muted)}.cv-edu-meta{margin-top:.44rem;display:flex;flex-wrap:wrap;gap:.32rem .62rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted)}.cv-edu-meta>span+span:before{content:"";display:inline-block;width:4px;height:4px;margin-right:.45rem;margin-bottom:.1rem;border-radius:999px;background:#94a3b899}.cv-empty{margin:0;border-radius:12px;border:1px dashed rgba(148,163,184,.35);padding:.85rem;color:var(--color-muted);font-size:.85rem}html[data-theme=light] .cv-back-button{border-color:#818cf880;background:#f0f5ffe6;color:#312e81}html[data-theme=light] .cv-back-button:hover{border-color:#4f46e594;background:#e0e7fff5;color:#1e1b4b}html[data-theme=light] .cv-hero{border-color:#94a3b838;background:#f9fafbf5;box-shadow:0 14px 28px #0f172a0f}html[data-theme=light] .cv-years-pill{border-color:#94a3b833;color:#334155;background:#fffffff0}html[data-theme=light] .cv-sort-btn{border-color:#94a3b833;background:#ffffffeb;color:#64748b}html[data-theme=light] .cv-sort-btn:hover{border-color:#6366f12e;color:#1f2937}html[data-theme=light] .cv-sort-btn.is-active{border-color:#6366f138;color:#1f2937;background:#f1f5f9f5}html[data-theme=light] .cv-more-button{border-color:#94a3b833;background:#ffffffeb;color:#64748b}html[data-theme=light] .cv-more-button:hover{border-color:#6366f12e;color:#1f2937}html[data-theme=light] .cv-panel{border-color:#94a3b838;background:#f9fafbf5;box-shadow:0 14px 28px #0f172a0f}html[data-theme=light] .cv-entry-card,html[data-theme=light] .cv-education-item,html[data-theme=light] .cv-certification-item{border-color:#94a3b833;background:#ffffffeb}html[data-theme=light] .cv-cert-pill{border-color:#94a3b833;background:#f8fafceb;color:#475569}html[data-theme=light] .cv-cert-pill-id{border-color:#6366f12e;color:#334155}html[data-theme=light] .cv-timeline-dot{border-color:#94a3b84d;background:#fffffffa}@media (min-width: 768px){.cv-shell{gap:1rem}.cv-layout{grid-template-columns:minmax(0,1.9fr) minmax(240px,1fr);gap:1rem;align-items:flex-start}.cv-panel{padding:1rem}.cv-sort-controls{margin-bottom:.95rem}.cv-exp-title-row{flex-direction:row;justify-content:space-between;align-items:baseline;gap:.8rem}}@media (max-width: 767px){.cv-certification-item{padding:.78rem .8rem .82rem}.cv-cert-title{font-size:.9rem}.cv-cert-issuer{font-size:.78rem}.projects-grid{gap:.8rem}.project-card{gap:.68rem;padding:.88rem;border-radius:16px}.project-card-cover{height:174px;border-radius:14px}.project-card-content{gap:.42rem}.project-card-description{font-size:.8rem;line-height:1.5}.project-card-actions{gap:.42rem}.skills-grid{gap:.68rem}.skills-grid>*{margin-bottom:.68rem}.skills-card{gap:.72rem;padding:.86rem;border-radius:16px}.skills-card-header{padding-bottom:.48rem;font-size:.69rem}.skills-chips{gap:.48rem;grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.skill-chip{padding:.56rem .64rem;gap:.52rem}.skill-icon{width:2rem;height:2rem;border-radius:12px;font-size:1rem}.skill-icon-img{width:1.18rem;height:1.18rem}.chip-name{font-size:.88rem}.cv-shell{gap:.82rem}.cv-hero,.cv-panel{border-radius:16px}.cv-hero{padding:.9rem .9rem .96rem}.cv-panel{padding:.86rem}.cv-entry-card,.cv-education-item,.cv-certification-item{border-radius:12px}}@media (min-width: 1024px){.cv-shell{margin-left:-.72rem;width:calc(100% + .72rem);gap:1.15rem}.cv-hero{padding:1.15rem 1.2rem 1.22rem}.cv-summary{max-width:78ch;font-size:.98rem}.cv-layout{grid-template-columns:minmax(0,2.95fr) minmax(240px,.9fr);gap:.82rem}.cv-panel{padding:1.05rem 1.1rem 1.12rem;border-radius:20px}.cv-panel-side{position:sticky;top:calc(var(--nav-height) + .95rem)}.cv-entry-card{padding:.95rem 1rem}.cv-exp-role{font-size:1.02rem}.cv-exp-details{font-size:.92rem}.cv-edu-degree{font-size:.96rem}}html[data-theme=light] .bottom-nav{background:#f6f4fff2;border-color:#818cf84d}.cv-fab{position:fixed;right:2rem;bottom:2.5rem;z-index:60;display:none;align-items:center;gap:.45rem;padding:.55rem .95rem;border-radius:999px;border:1px solid rgba(148,163,184,.55);background:#0f172ae6;color:#f9fafb;font-size:.85rem;font-weight:500;cursor:pointer;box-shadow:0 16px 45px #0f172ae6;opacity:1;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .24s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.cv-fab.is-hidden{opacity:0;transform:translateY(14px) scale(.95);pointer-events:none}html[data-theme=light] .cv-fab{border-color:#818cf866;background:#f7f5fff2;color:#1f1d2e;box-shadow:0 16px 36px #4f46e529}.cv-fab-icon{font-size:1rem}.cv-fab-label{letter-spacing:.04em;text-transform:uppercase}@media (min-width: 1024px){.cv-fab{display:inline-flex}}@media (min-width: 768px){.bottom-nav{display:none}}.project-link{display:inline-flex;align-items:center;justify-content:center;gap:.38rem;min-height:36px;padding:.44rem .82rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.01em;text-decoration:none;border:1px solid;transition:border-color .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;cursor:pointer;background:transparent}.project-link:after{content:"->";display:inline-block;font-size:.8em;line-height:1;opacity:.64;transform:translate(0);transition:opacity .18s ease,transform .18s ease}.project-link:hover:after{opacity:1;transform:translate(3px)}.project-link-github{color:var(--color-text);border-color:color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft))}.project-link-github:hover{color:var(--color-text);border-color:color-mix(in oklab,var(--color-accent) 30%,var(--color-border));background:color-mix(in oklab,var(--color-bg-soft) 90%,transparent);box-shadow:0 8px 18px #0206171a}.project-link-demo{color:#fff;border-color:color-mix(in oklab,var(--color-accent) 48%,var(--color-border));background:color-mix(in oklab,var(--color-accent) 76%,#111827)}.project-link-demo:hover{border-color:color-mix(in oklab,var(--color-accent) 64%,white 8%);background:color-mix(in oklab,var(--color-accent) 84%,#111827);box-shadow:0 9px 20px #4f46e52e}.project-link-download{color:#052e23;border-color:#05966942;background:#34d399}.project-link-download:hover{color:#04271e;border-color:#0596695c;background:#10b981;box-shadow:0 9px 20px #10b9812e}html[data-theme=light] .project-link-github{color:#334155;border-color:#94a3b833;background:#ffffffeb}html[data-theme=light] .project-link-github:hover{color:#1f2937;border-color:#6d75b852;background:#fffffffa;box-shadow:0 8px 18px #0f172a14}html[data-theme=light] .project-link-demo{color:#fff;border-color:#6d75b847;background:#6d75b8}html[data-theme=light] .project-link-demo:hover{border-color:#6d75b861;background:#626aa8;box-shadow:0 9px 20px #493f6a24}html[data-theme=light] .project-link-download{color:#064e3b;border-color:#0596693d;background:#6ee7b7}html[data-theme=light] .project-link-download:hover{border-color:#05966952;background:#34d399;box-shadow:0 8px 20px #10b9812e}.tech-tag{display:inline-flex;align-items:center;padding:.3rem .58rem;border-radius:999px;font-size:.69rem;font-weight:500;color:var(--color-muted);background:color-mix(in oklab,var(--color-bg) 82%,var(--color-bg-soft));border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);transition:border-color .2s ease-out,background-color .2s ease-out,color .2s ease-out;line-height:1.2}.tech-tag:hover{background:color-mix(in oklab,var(--color-bg) 76%,var(--color-bg-soft));color:var(--color-text);border-color:color-mix(in oklab,var(--color-primary) 16%,var(--color-border))}html[data-theme=light] .tech-tag{color:#64748b;background:#ffffffeb;border:1px solid rgba(148,163,184,.18)}html[data-theme=light] .tech-tag:hover{background:#fffffffa;color:#334155;border-color:#6366f129}.project-card-title{margin:0;font-size:1rem;font-weight:600;line-height:1.35;color:var(--color-text)}.project-card-description{margin:0;font-size:.82rem;line-height:1.55;color:var(--color-muted)}.project-card-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:.5rem}.project-card-tech{display:flex;flex-wrap:wrap;gap:.4rem}.project-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.2rem}.admin-form{display:flex;flex-direction:column;gap:1rem;animation:admin-form-enter .32s cubic-bezier(.22,1,.36,1)}.admin-form--narrow{max-width:480px}.admin-form--wide{max-width:880px}.admin-field-label{display:flex;flex-direction:column;gap:.28rem;font-size:.86rem;font-weight:650;letter-spacing:.01em}.admin-input,.admin-textarea{margin-top:4px;width:100%;border-radius:999px;border:1px solid var(--color-border);padding:.76rem 1rem;background-color:#0f172ad9;color:var(--color-fg);font-size:.92rem;font-weight:560;letter-spacing:.01em;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .14s ease}select.admin-input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-muted) 50%),linear-gradient(135deg,var(--color-muted) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:2rem}.admin-input[type=file]{border-radius:14px;padding:.62rem .72rem;cursor:pointer}.admin-input[type=file]::file-selector-button{margin-right:.72rem;border:1px solid rgba(148,163,184,.5);border-radius:999px;background:#0f172a9e;color:var(--color-fg);padding:.34rem .72rem;font-size:.72rem;font-weight:700;cursor:pointer}.admin-input:focus,.admin-textarea:focus{border-color:#6366f1b8;box-shadow:0 0 0 3px #6366f133}.admin-textarea{border-radius:16px;min-height:80px;resize:vertical;line-height:1.4}.admin-primary-button{margin-top:4px;padding:.76rem 1.18rem;border-radius:999px;border:1px solid rgba(129,140,248,.55);background:linear-gradient(135deg,#4338ca,#7c3aed 55%,#0ea5e9);color:#f9fafb;font-size:.9rem;font-weight:700;letter-spacing:.025em;text-transform:uppercase;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:transform var(--transition-med),box-shadow var(--transition-med),border-color .18s ease,opacity .16s ease-out;box-shadow:0 10px 24px #1e293b8c}.admin-primary-button:before{content:"✦";font-size:.74rem;line-height:1;opacity:.95}.admin-primary-button:disabled{opacity:.7;cursor:default;box-shadow:none}@media (hover: hover) and (pointer: fine){.admin-primary-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 26px #0f172ad9}}.admin-secondary-button{padding:.6rem .95rem;border-radius:999px;border:1px solid rgba(148,163,184,.5);background:linear-gradient(180deg,#0f172a80,#0f172a4d);color:var(--color-fg);font-size:.82rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;transition:transform var(--transition-med),box-shadow var(--transition-med),border-color .6s cubic-bezier(.4,0,.2,1),background-color .6s cubic-bezier(.4,0,.2,1),opacity .16s ease-out}.admin-secondary-button:before{content:"↗";font-size:.72rem;line-height:1;margin-right:.38rem;opacity:.9}.admin-secondary-button:disabled{opacity:.55;cursor:default}@media (hover: hover) and (pointer: fine){.admin-secondary-button:not(:disabled):hover{transform:translateY(-1px);border-color:#7c3aed99;box-shadow:0 12px 26px #0f172a59}}.admin-divider{height:1px;width:100%;background:linear-gradient(90deg,transparent,rgba(148,163,184,.25),transparent);margin:.25rem 0 .75rem}html[data-theme=light] .admin-secondary-button{background:linear-gradient(180deg,#f4ead4f0,#ecdfc1e6);border-color:#b08c6080}html[data-theme=light] .admin-divider{background:linear-gradient(90deg,transparent,rgba(86,63,30,.24),transparent)}.admin-toolbar{display:flex;gap:6px;margin-bottom:12px}.admin-toolbar-tab{flex:1;text-transform:capitalize;font-weight:700}.admin-toolbar-tab-active{border-color:#7c3aedb3;background-color:#7c3aed2e}.admin-pill-nav{display:flex;gap:6px;padding:6px;border-radius:999px;background:#0f172ae6}html[data-theme=light] .admin-pill-nav{background:#f1e5cbeb;border:1px solid rgba(176,140,96,.46);box-shadow:0 10px 28px #563f1e24}html[data-theme=light] .admin-input,html[data-theme=light] .admin-textarea{background-color:#f6ecd7;color:#3a2f1f;border-color:#b08c606b}html[data-theme=light] .admin-input[type=file]::file-selector-button{border-color:#b08c6085;background:#eeddbceb;color:#5e4a2f}html[data-theme=light] .admin-input::placeholder,html[data-theme=light] .admin-textarea::placeholder{color:#8c6d48}html[data-theme=light] .admin-field-label,html[data-theme=light] .admin-surface .section-title{color:#3a2f1f}html[data-theme=light] .admin-surface .section-subtitle{color:#7f6b4d}.admin-surface{background:linear-gradient(180deg,#02061780,#0f172a5c);border-radius:18px;border:1px solid rgba(148,163,184,.28);box-shadow:0 16px 30px #02061742;padding:1rem;margin-top:.35rem}.admin-panel{background:linear-gradient(160deg,#1e293bb8,#0f172a9e);border-radius:18px;border:1px solid rgba(148,163,184,.4);padding:.92rem 1.04rem;box-shadow:0 14px 26px #02061747;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}@media (hover: hover) and (pointer: fine){.admin-panel:hover{transform:translateY(-1px);border-color:#818cf880;box-shadow:0 16px 28px #02061757}}.admin-manager-shell{display:flex;flex-direction:column;gap:.9rem}.admin-manager-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.2rem 0}.admin-manager-kicker{margin-bottom:.24rem;font-size:.7rem;font-weight:760;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.admin-manager-helper{margin:.35rem 0 0;max-width:58ch;font-size:.78rem;line-height:1.55;color:var(--color-muted)}.admin-manager-helper--compact{max-width:42ch;margin:0}.admin-manager-stats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.admin-manager-stat{display:inline-flex;align-items:center;min-height:36px;padding:0 .8rem;border-radius:999px;border:1px solid rgba(148,163,184,.26);background:#0f172a5c;font-size:.76rem;color:var(--color-muted)}.admin-manager-stat strong{margin-right:.35rem;color:var(--color-fg)}.admin-manager-alert{padding:.7rem .9rem;border-radius:14px;border:1px solid rgba(248,113,113,.28);background:#7f1d1d1f;font-size:.78rem;line-height:1.45}.admin-manager-alert--muted{color:var(--color-muted);border-color:#94a3b833;background:#0f172a47}.admin-manager-layout{display:grid;gap:.9rem}.admin-manager-layout--skills{grid-template-columns:minmax(300px,.9fr) minmax(0,1.3fr)}.admin-manager-layout--graphics{grid-template-columns:minmax(280px,.95fr) minmax(0,1.45fr)}.admin-manager-column,.admin-manager-workspace{min-width:0;display:flex;flex-direction:column;gap:.9rem}.admin-manager-list-panel,.admin-manager-form-panel,.admin-manager-detail-panel{display:flex;flex-direction:column;gap:.85rem}.admin-manager-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.admin-manager-section-head--spaced{margin-top:.25rem}.admin-manager-chip-picker{display:flex;flex-wrap:wrap;gap:.42rem}.admin-manager-chip-picker-item.is-active{border-color:#818cf8ad;background:#4f46e52e}.admin-manager-inline-note{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem}.admin-manager-list{display:flex;flex-direction:column;gap:.75rem}.admin-manager-group-card,.admin-manager-folder-card{gap:.78rem}.admin-manager-group-card.is-active,.admin-manager-folder-card.is-active{border-color:#818cf88a;box-shadow:0 16px 28px #02061757,0 0 0 1px #818cf82e inset}.admin-manager-group-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.admin-manager-group-title{display:flex;align-items:flex-start;gap:.7rem;min-width:0}.admin-manager-group-name{font-size:.94rem;font-weight:760;line-height:1.2}.admin-manager-group-meta{margin-top:.18rem;font-size:.74rem;color:var(--color-muted)}.admin-manager-drag-handle{border:none;background:transparent;color:inherit;opacity:.62;cursor:grab;font-weight:700;padding:0;user-select:none}.admin-manager-skill-list{display:flex;flex-direction:column;gap:.62rem}.admin-manager-skill-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding-top:.62rem;border-top:1px solid rgba(148,163,184,.12)}.admin-manager-skill-row:first-child{padding-top:0;border-top:none}.admin-manager-skill-info{display:flex;align-items:center;gap:.7rem;min-width:0}.admin-manager-skill-badge{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#0f172a7a;border:1px solid rgba(148,163,184,.22);overflow:hidden;flex-shrink:0}.admin-manager-skill-badge img{width:22px;height:22px;object-fit:contain}.admin-manager-skill-name{font-size:.88rem;font-weight:640}.admin-manager-skill-meta{margin-top:.16rem;font-size:.72rem;color:var(--color-muted)}.admin-action-row{display:flex;flex-wrap:wrap;gap:.45rem}.admin-action-row--spread>*{flex:1 1 0;justify-content:center}.admin-manager-danger-chip{border-color:#f87171b3!important}.admin-manager-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.admin-manager-preview{margin-top:.1rem}.admin-manager-empty-state{padding:1rem;border:1px dashed rgba(148,163,184,.24);border-radius:16px;font-size:.8rem;color:var(--color-muted);text-align:center}.admin-manager-layout--graphics>.admin-manager-list-panel{padding:0;border:none;background:transparent;box-shadow:none}.admin-manager-layout--graphics .admin-manager-folder-card{padding:.88rem .96rem;background:#0f172a57;border:1px solid rgba(148,163,184,.22);box-shadow:none}.admin-manager-layout--graphics .admin-manager-folder-card.is-active{background:linear-gradient(180deg,#4f46e524,#0f172a66);border-color:#818cf875;box-shadow:0 12px 22px #02061733,0 0 0 1px #818cf81f inset}.admin-manager-layout--graphics .admin-manager-detail-panel,.admin-manager-layout--graphics .admin-manager-form-panel{background:#0f172a70;border-color:#94a3b838;box-shadow:0 14px 24px #0206172e}.admin-manager-layout--graphics .admin-graphics-upload-card{padding:.9rem;border-radius:16px;background:#0f172a61;border-color:#94a3b838;box-shadow:none}.admin-manager-layout--graphics .admin-graphics-image-grid{max-height:none;padding:0;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.admin-manager-layout--graphics .admin-graphics-image-tile{border-radius:12px;border-color:#94a3b838}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row .chip{min-height:34px;padding:.45rem .72rem;border-radius:12px;border-color:#94a3b83d;background:#0f172a6b;box-shadow:none;font-size:.76rem;font-weight:700;letter-spacing:.01em}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row .chip:hover{border-color:#818cf857;background:#1e293b8f;box-shadow:0 8px 16px #02061724}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row:first-of-type .chip{min-width:58px;padding-inline:.58rem;background:#0f172a47}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .chip:first-child{border-color:#818cf861;background:linear-gradient(180deg,#4f46e547,#3b82f62e);color:#eef2ff;box-shadow:0 10px 18px #02061729,0 0 0 1px #a5b4fc14 inset}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .chip:first-child:hover{border-color:#a5b4fc7a;background:linear-gradient(180deg,#4f46e557,#3b82f638)}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .admin-toolbar-tab-active{border-color:#a5b4fc8a;background:linear-gradient(180deg,#6366f157,#4f46e53d);color:#fff}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .admin-manager-danger-chip{background:#7f1d1d29;border-color:#f8717166!important;color:#fecaca}.admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .admin-manager-danger-chip:hover{background:#7f1d1d38;border-color:#f871718a!important}html[data-theme=light] .admin-panel{background:#f5ebd6eb;border-color:#b08c608f}html[data-theme=light] .admin-manager-stat{border-color:#b08c6066;background:#f5ebd6c7;color:#7f6b4d}html[data-theme=light] .admin-manager-stat strong,html[data-theme=light] .admin-manager-group-name,html[data-theme=light] .admin-manager-skill-name{color:#3a2f1f}html[data-theme=light] .admin-manager-alert--muted,html[data-theme=light] .admin-manager-empty-state{border-color:#b08c6042;background:#f5ebd6a3;color:#7f6b4d}html[data-theme=light] .admin-manager-skill-row{border-top-color:#b08c6033}html[data-theme=light] .admin-manager-skill-badge{background:#ffffffb8;border-color:#b08c6042}html[data-theme=light] .admin-manager-layout--graphics>.admin-manager-list-panel{background:transparent}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card{background:#f5ebd6b8;border-color:#b08c6047}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card.is-active{background:linear-gradient(180deg,#6366f114,#f5ebd6d6);border-color:#6366f147}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-detail-panel,html[data-theme=light] .admin-manager-layout--graphics .admin-manager-form-panel,html[data-theme=light] .admin-manager-layout--graphics .admin-graphics-upload-card{background:#f5ebd6d1;border-color:#b08c6042;box-shadow:0 12px 24px #563f1e14}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row .chip{background:#ffffffad;border-color:#b08c603d;color:#3a2f1f}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row:first-of-type .chip{background:#f5ebd6d1}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .chip:first-child{border-color:#6366f13d;background:linear-gradient(180deg,#6366f124,#4f46e51a);color:#3730a3}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .admin-toolbar-tab-active{border-color:#6366f14d;background:linear-gradient(180deg,#6366f12e,#4f46e524);color:#312e81}html[data-theme=light] .admin-manager-layout--graphics .admin-manager-folder-card .admin-action-row--spread .admin-manager-danger-chip{background:#fee2e2db;color:#b91c1c}.admin-code-project-card{position:relative;overflow:hidden}.admin-code-project-card-featured{border-color:#f59e0ba8;background:radial-gradient(circle at 92% -12%,rgba(245,158,11,.2),transparent 42%),linear-gradient(150deg,#78350f38,#0f172a9e);animation:featured-admin-border 2.8s ease-in-out infinite}.admin-code-project-card-featured:after{content:"";position:absolute;inset:0;border-radius:18px;pointer-events:none;border:1px solid rgba(251,191,36,.2);animation:featured-admin-ring 2.8s ease-in-out infinite}.admin-featured-chip{font-size:.66rem;padding:2px 6px;border-color:#f59e0bbf;color:#f59e0b;background:#78350f33;font-weight:700;letter-spacing:.03em}html[data-theme=light] .admin-code-project-card-featured{border-color:#b4530980;background:radial-gradient(circle at 92% -12%,rgba(245,158,11,.16),transparent 40%),linear-gradient(150deg,#fffbebf0,#fef3c7d1)}html[data-theme=light] .admin-featured-chip{color:#92400e;background:#fbbf243d;border-color:#b4530980}@keyframes featured-admin-border{0%,to{box-shadow:0 12px 24px #02061740,0 0 #fbbf2400}50%{box-shadow:0 14px 28px #02061757,0 0 22px #f59e0b38}}@keyframes featured-admin-ring{0%,to{border-color:#fbbf2429}50%{border-color:#fbbf2457}}@media (prefers-reduced-motion: reduce){.project-card-featured,.project-card-featured:before,.project-featured-chip,.admin-code-project-card-featured,.admin-code-project-card-featured:after{animation:none!important}}.admin-shell{display:flex;gap:1.1rem;align-items:flex-start;font-family:Space Grotesk,Ubuntu,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.admin-sidebar{width:236px;flex-shrink:0;display:flex;flex-direction:column;gap:.85rem;position:sticky;top:calc(var(--nav-height) + 1rem);padding:.9rem;border:1px solid rgba(148,163,184,.26);border-radius:18px;background:linear-gradient(180deg,#0206178f,#0f172a7a);box-shadow:0 18px 34px #0206174d}.admin-sidebar-header{display:flex;flex-direction:column;gap:.35rem}.admin-sidebar-title{font-size:1.12rem;font-weight:760;letter-spacing:.01em}.admin-sidebar-subtitle{font-size:.77rem;font-weight:560;color:var(--color-muted)}.admin-sidebar-nav{display:flex;flex-direction:column;gap:.4rem;position:relative}.admin-sidebar-nav-highlight{display:none}.admin-sidebar-item{display:flex;align-items:center;gap:.6rem;padding:.58rem .78rem;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--color-muted);font-size:.84rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;transition:background .2s ease-out,border-color .2s ease-out,color .2s ease-out,transform .12s ease-out}.admin-sidebar-item-icon{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#6366f12e;border:1px solid rgba(129,140,248,.28);flex-shrink:0}.admin-sidebar-item-active{background:linear-gradient(135deg,#7c3aed4d,#3b82f638);border-color:#7c3aed99;color:var(--color-fg);box-shadow:0 10px 20px #0f172a3d}@media (hover: hover) and (pointer: fine){.admin-sidebar-item:hover{transform:translate(1px);background:#0f172abf}}.admin-content{flex:1;min-width:0}.admin-content-shell{position:relative;border:1px solid rgba(148,163,184,.26);border-radius:18px;background:linear-gradient(180deg,#02061794,#0f172a6b);box-shadow:0 18px 38px #0206176b;overflow:hidden}.admin-content-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid rgba(148,163,184,.24);background:#0f172a7a}.admin-content-title{margin:0;font-size:1.12rem;font-weight:780;letter-spacing:.012em}.admin-content-subtitle{margin:.22rem 0 0;font-size:.78rem;font-weight:560;color:var(--color-muted)}.admin-content-badge{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 .62rem;border-radius:10px;font-size:.68rem;font-weight:720;letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(99,102,241,.36);color:#ddd6fe;background:#4f46e529}.admin-shell .chip{font-weight:700;letter-spacing:.02em}.admin-shell button.chip,.admin-shell a.chip{border-color:#94a3b880;background:#0f172a5c;color:var(--color-fg);transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}@media (hover: hover) and (pointer: fine){.admin-shell button.chip:hover,.admin-shell a.chip:hover{transform:translateY(-1px);border-color:#818cf8ad;background:#1e293b94;box-shadow:0 8px 18px #02061738}}.admin-signout-button{width:100%;justify-content:center;margin-top:.15rem}.admin-signout-button:before{content:none}.admin-content-body{padding:.2rem 1rem .95rem}.admin-content .admin-surface{border-bottom:none;margin-top:.9rem}.admin-content .admin-panel{background:#0f172a80;border-color:#94a3b84d}.admin-graphics-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.25fr);gap:12px}.admin-graphics-column{min-width:0;display:flex;flex-direction:column;gap:10px}.admin-graphics-column-folders,.admin-graphics-column-editor{max-height:calc(100vh - 290px);overflow-y:auto;padding-right:2px}.admin-graphics-folder-row{padding:.8rem .88rem}.admin-graphics-row-actions{display:flex;gap:6px;flex-wrap:wrap}.admin-graphics-editor-panel{position:relative;top:auto;z-index:1;background:linear-gradient(180deg,#0f172af2,#0f172ad6)}.admin-graphics-upload-card{display:flex;flex-direction:column;gap:.55rem;margin-bottom:8px;padding:.75rem;background:#0f172a80;border:1px solid rgba(148,163,184,.35);border-radius:12px}.admin-graphics-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;max-height:420px;overflow-y:auto;padding:.75rem .5rem}.admin-graphics-image-tile{position:relative;border-radius:8px;overflow:hidden;background:#0f172ab3;border:1px solid var(--color-border);aspect-ratio:1}.admin-graphics-empty-state{font-size:.82rem;color:var(--color-muted);text-align:center;padding:1rem .5rem}.admin-graphics-new-folder-btn{margin-top:0;min-height:36px}html[data-theme=light] .admin-content-shell{border-color:#b08c6075;background:linear-gradient(180deg,#f5ecd8f2,#efe2c7eb);box-shadow:0 14px 30px #563f1e24}html[data-theme=light] .admin-content-head{border-bottom-color:#b08c6057;background:#f2e6cdc7}html[data-theme=light] .admin-content-badge{border-color:#a8773a70;color:#7b4b1f;background:#c99e6533}html[data-theme=light] .admin-sidebar{border-color:#b08c6070;background:linear-gradient(180deg,#f3e8d0f2,#eddebfe6)}html[data-theme=light] .admin-sidebar-item-icon{background:#c99e6533;border-color:#a8773a57}html[data-theme=light] .admin-sidebar-nav-highlight:before{background:linear-gradient(180deg,#ffffff52,#ffffff2e);border-color:#b08c602e;box-shadow:0 8px 18px #563f1e14,inset 0 1px #ffffff47}html[data-theme=light] .admin-shell button.chip,html[data-theme=light] .admin-shell a.chip{background:#f5ebd6e6;border-color:#b08c6094;color:#3a2f1f}html[data-theme=light] .admin-graphics-editor-panel{background:linear-gradient(180deg,#f4e9d2fa,#eddfc0f2)}html[data-theme=light] .admin-graphics-upload-card{background:#f4e9d2e6;border-color:#b08c6080}@media (max-width: 900px){.admin-shell{flex-direction:column;gap:.95rem}.admin-sidebar{position:static;top:auto;z-index:auto;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.78rem .72rem;padding:0 0 .2rem;border:none;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}.admin-sidebar-header{gap:.18rem;min-width:0}.admin-sidebar-title{font-size:1rem}.admin-sidebar-subtitle{font-size:.74rem}.admin-signout-button{width:auto;min-height:42px;margin-top:0;padding-inline:.82rem;align-self:start;justify-self:end}.admin-sidebar-nav{--admin-nav-padding: .32rem;--admin-nav-slot-width: calc((100% - (var(--admin-nav-padding) * 2)) / 6);position:fixed;left:0;right:0;bottom:calc(.75rem + env(safe-area-inset-bottom));inset-inline:0;margin-inline:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:min(24.75rem,calc(100vw - 1.1rem));max-width:calc(100vw - 1.1rem);min-height:3.95rem;padding:var(--admin-nav-padding);gap:0;overflow:hidden;border-radius:999px;border:1px solid rgba(148,163,184,.24);background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 55%),#080d18db;box-shadow:0 14px 30px #0206173d,0 4px 12px #0206171f,inset 0 1px #ffffff0a;backdrop-filter:blur(18px);z-index:50;transform:translateY(0) scale(1);transform-origin:center bottom;transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .32s ease,box-shadow .32s ease,background .6s cubic-bezier(.4,0,.2,1),border-color .6s cubic-bezier(.4,0,.2,1);will-change:transform,opacity}.admin-sidebar-nav.is-hidden-on-scroll{transform:translateY(calc(145% + env(safe-area-inset-bottom))) scale(.94);opacity:0;box-shadow:0 6px 14px #02061714,0 2px 6px #0206170d,inset 0 1px #ffffff05;pointer-events:none}.admin-sidebar-nav.is-showing-liquid{animation:bottom-nav-show-liquid .54s cubic-bezier(.22,1,.36,1)}.admin-sidebar-nav-highlight{display:block;position:absolute;top:var(--admin-nav-padding);bottom:var(--admin-nav-padding);left:var(--admin-nav-padding);width:var(--admin-nav-slot-width);border-radius:999px;transform:translate(calc(var(--admin-mobile-active-index, 0) * 100%));transition:transform .32s cubic-bezier(.22,1,.36,1),background-color .22s ease,border-color .22s ease,box-shadow .22s ease;pointer-events:none}.admin-sidebar-nav-highlight:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff14,#ffffff0a);border:1px solid rgba(148,163,184,.14);box-shadow:0 8px 18px #02061724,inset 0 1px #ffffff14}.admin-sidebar-item{flex:1;min-width:0;min-height:3rem;padding:.32rem .08rem .42rem;border-radius:999px;border-color:transparent;background:transparent;flex-direction:column;justify-content:center;text-align:center;font-size:.62rem;font-weight:700;letter-spacing:.015em;line-height:1.1;text-transform:none;box-shadow:none;color:var(--color-muted);z-index:1;gap:.12rem;opacity:.84}.admin-sidebar-item>span:last-child{white-space:nowrap}.admin-sidebar-item-icon{width:1.04rem;height:1.04rem;margin-bottom:0;background:transparent;border-color:transparent}.admin-sidebar-item-active{background:transparent;border-color:transparent;box-shadow:none;color:#f8fafc;opacity:1}.admin-sidebar-item-active .admin-sidebar-item-icon{color:#fff;transform:scale(1.08)}html[data-theme=light] .admin-sidebar-nav{border-color:#b08c6038;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 55%),#f3e8d0eb;box-shadow:0 14px 30px #563f1e1f,0 4px 12px #563f1e0f,inset 0 1px #ffffff3d}html[data-theme=light] .admin-sidebar-item{color:#8c6d48}html[data-theme=light] .admin-sidebar-item-active,html[data-theme=light] .admin-sidebar-item-active .admin-sidebar-item-icon{color:#2d1f14}html[data-theme=light] .admin-sidebar{background:transparent;border:none;box-shadow:none}.admin-content-head{flex-direction:column;align-items:flex-start;gap:.6rem;padding:1rem 1rem .92rem}.admin-content-title{font-size:1rem}.admin-content-subtitle{font-size:.79rem;line-height:1.45;max-width:34ch}.admin-content-badge{height:28px;padding-inline:.7rem;border-radius:999px;font-size:.67rem}.admin-content-body{padding:.18rem .88rem .92rem}.admin-content-shell{border-radius:24px;background:linear-gradient(180deg,#020617ad,#0f172a8a);box-shadow:0 18px 36px #02061747}.admin-content .admin-surface,.admin-panel{border-radius:20px}.admin-manager-hero,.admin-manager-section-head{flex-direction:column;align-items:flex-start}.admin-manager-layout--skills,.admin-manager-layout--graphics,.admin-manager-upload-grid{grid-template-columns:1fr}.admin-manager-stats{width:100%;justify-content:flex-start}.admin-manager-group-head,.admin-manager-skill-row{flex-direction:column;align-items:flex-start}.admin-surface{padding:.92rem}.admin-panel{padding:.88rem .92rem;box-shadow:0 12px 22px #02061738}.admin-form{gap:.9rem}.admin-field-label{gap:.32rem;font-size:.82rem}.admin-input,.admin-textarea{border-radius:16px;padding:.82rem .92rem;font-size:.95rem}.admin-input[type=file]{border-radius:16px;padding:.7rem .78rem}.admin-input[type=file]::file-selector-button{border-radius:12px;padding:.42rem .72rem}.admin-textarea{min-height:112px}.admin-primary-button,.admin-secondary-button{min-height:46px;border-radius:16px;justify-content:center;padding:.82rem 1rem;font-size:.86rem;letter-spacing:.015em;text-transform:none}.admin-primary-button:before,.admin-secondary-button:before{margin-right:.28rem}.admin-pill-nav{gap:.4rem;padding:.35rem;border-radius:18px;overflow-x:auto;scrollbar-width:none}.admin-pill-nav::-webkit-scrollbar{display:none}.admin-toolbar-tab{flex:0 0 auto;min-height:40px}.admin-graphics-layout{grid-template-columns:minmax(0,1fr);gap:10px}.admin-graphics-column-folders,.admin-graphics-column-editor{max-height:none;overflow:visible;padding-right:0}.admin-graphics-folder-row{padding:.78rem}.admin-graphics-row-actions{gap:.5rem}.admin-graphics-row-actions>*{flex:1 1 calc(50% - .25rem);justify-content:center}.admin-graphics-upload-card{padding:.82rem;border-radius:16px}.admin-graphics-image-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;padding:.4rem 0}}@media (max-width: 640px){.admin-shell{gap:.82rem}.admin-sidebar{padding-bottom:.12rem}.admin-sidebar-title{font-size:.94rem}.admin-sidebar-subtitle{font-size:.7rem}.admin-sidebar-item{min-width:0;min-height:3rem;padding:.3rem .06rem .4rem;border-radius:999px;font-size:.68rem}.admin-sidebar-item-icon{width:1rem;height:1rem;margin-bottom:0}.admin-content-shell{border-radius:20px}.admin-content-head{padding:.88rem .88rem .82rem}.admin-content-body{padding:.12rem .76rem .82rem}.admin-surface,.admin-panel{border-radius:18px}.admin-surface{padding:.82rem}.admin-panel{padding:.8rem .82rem}.admin-input,.admin-textarea,.admin-primary-button,.admin-secondary-button{font-size:.92rem}.admin-primary-button,.admin-secondary-button{width:100%}.admin-signout-button{width:auto}.admin-toolbar-tab{min-height:38px}.admin-graphics-row-actions>*{flex-basis:100%}}@media (max-width: 900px) and (hover: hover) and (pointer: fine){.admin-sidebar-item:hover{transform:none;background:transparent;color:var(--color-muted);box-shadow:none}.admin-sidebar-item:hover .admin-sidebar-item-icon{transform:none;color:inherit}.admin-sidebar-item-active:hover{color:#f8fafc}.admin-sidebar-item-active:hover .admin-sidebar-item-icon{color:#fff;transform:scale(1.08)}html[data-theme=light] .admin-sidebar-item:hover{color:#8c6d48}html[data-theme=light] .admin-sidebar-item-active:hover,html[data-theme=light] .admin-sidebar-item-active:hover .admin-sidebar-item-icon{color:#2d1f14}}html[data-theme=light] input,html[data-theme=light] textarea{background-color:#f5ebd5;color:var(--color-fg);border-color:#b08c6085}@keyframes admin-form-enter{0%{opacity:0;transform:translateY(10px) scale(.992);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.reveal{opacity:0;transform:translateY(20px);transition:opacity .3s ease-out,transform .3s ease-out}.reveal.visible{opacity:1;transform:translateY(0)}.section-is-loading{min-height:240px}.section-loading-screen{position:relative;overflow:hidden;isolation:isolate;min-height:220px;border-radius:var(--radius-lg);border:1px solid color-mix(in oklab,var(--color-border) 70%,transparent);background:radial-gradient(circle at 12% 18%,rgba(56,189,248,.16) 0,transparent 44%),radial-gradient(circle at 92% 88%,rgba(124,58,237,.14) 0,transparent 46%),color-mix(in oklab,var(--color-bg-soft) 92%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.72rem;animation:section-loader-enter .26s cubic-bezier(.22,1,.36,1) both}.section-loading-screen:before{content:"";position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.025) 42%,rgba(255,255,255,.09) 50%,rgba(255,255,255,.025) 58%,transparent 100%);transform:translate3d(-42%,0,0);animation:section-loader-sheen 3.8s linear infinite;pointer-events:none}.section-loading-orb{position:relative;z-index:1;width:44px;height:44px;border-radius:999px;border:2px solid rgba(148,163,184,.35);border-top-color:var(--color-accent);border-right-color:#38bdf8d1;animation:spin .95s linear infinite}.section-loading-label{position:relative;z-index:1;margin:0;font-size:.84rem;font-weight:600;letter-spacing:.03em;color:var(--color-muted);text-transform:uppercase;animation:section-label-pulse 1.9s ease-in-out infinite}.section-loading-skeletons{position:relative;z-index:1;width:min(86%,360px);display:flex;flex-direction:column;gap:.42rem}.section-loading-skeleton{position:relative;overflow:hidden;height:10px;border-radius:999px;background:#94a3b824}.section-loading-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 30%,rgba(255,255,255,.28) 50%,rgba(255,255,255,.08) 70%,transparent 100%);transform:translate3d(-100%,0,0);animation:section-skeleton-sheen 1.5s ease-out infinite;will-change:transform}.section-loading-skeleton--short{width:66%}.section-loading-line,.section-loading-avatar,.section-loading-contact-field,.section-loading-contact-button,.section-loading-contact-method,.section-loading-social-dot,.section-loading-cv-hero,.section-loading-cv-panel,.section-loading-timeline-dot,.section-loading-timeline-card{position:relative;overflow:hidden}.section-loading-screen--home,.section-loading-screen--contact,.section-loading-screen--cv{align-items:stretch;justify-content:flex-start;padding:clamp(1rem,2vw,1.35rem)}.section-loading-screen--home .section-loading-orb,.section-loading-screen--contact .section-loading-orb,.section-loading-screen--cv .section-loading-orb{display:none}.section-loading-screen--home .section-loading-label,.section-loading-screen--contact .section-loading-label,.section-loading-screen--cv .section-loading-label{align-self:flex-start;margin-bottom:1rem;font-size:.78rem;letter-spacing:.12em}.section-loading-skeletons--home{width:100%;align-items:center;text-align:center;gap:1.1rem}.section-loading-avatar{display:block;width:min(52vw,220px);aspect-ratio:1;border-radius:32% 68% 60% 40%/38% 42% 58% 62%;background:#94a3b81a;border:1px solid color-mix(in oklab,var(--color-border) 86%,transparent)}.section-loading-home-copy{display:flex;width:min(100%,39rem);flex-direction:column;align-items:center;gap:.58rem}.section-loading-line{display:block;height:10px;border-radius:999px;background:#94a3b81f}.section-loading-line--title{width:min(72%,24rem);height:26px}.section-loading-line--subtitle{width:min(46%,16rem);height:14px}.section-loading-line--body{width:min(92%,36rem)}.section-loading-line--body-short{width:min(68%,28rem)}.section-loading-skeletons--contact{width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.section-loading-contact-form,.section-loading-contact-info{display:flex;min-width:0;flex-direction:column;gap:.74rem}.section-loading-contact-form{padding:.94rem .98rem;border-radius:18px;border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent)}.section-loading-contact-info{padding:.15rem 0}.section-loading-contact-title{width:46%}.section-loading-contact-subtitle{width:64%;margin-bottom:.1rem}.section-loading-contact-field{display:block;height:46px;border-radius:16px;border:1px solid color-mix(in oklab,var(--color-border) 90%,transparent);background:color-mix(in oklab,var(--color-bg) 84%,var(--color-bg-soft))}.section-loading-contact-field--message{height:128px}.section-loading-contact-button{display:block;width:100%;height:42px;border-radius:999px;background:#94a3b821}.section-loading-contact-method{display:block;height:56px;border-bottom:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:radial-gradient(circle at 14px 27px,rgba(148,163,184,.16) 0 10px,transparent 11px),linear-gradient(#94a3b826,#94a3b826) 42px 15px / 34% 8px no-repeat,linear-gradient(#94a3b817,#94a3b817) 42px 32px / 62% 8px no-repeat}.section-loading-contact-socials{display:flex;justify-content:center;gap:.95rem;padding-top:.2rem}.section-loading-social-dot{display:block;width:18px;height:18px;border-radius:999px;background:#94a3b824}.section-loading-skeletons--cv{width:100%;gap:.9rem}.section-loading-cv-hero,.section-loading-cv-panel{display:flex;flex-direction:column;gap:.62rem;border-radius:18px;border:1px solid color-mix(in oklab,var(--color-border) 88%,transparent);background:color-mix(in oklab,var(--color-bg-soft) 94%,transparent)}.section-loading-cv-hero{padding:1rem}.section-loading-cv-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:.9rem}.section-loading-cv-panel{padding:.92rem}.section-loading-cv-heading{width:42%;margin-bottom:.15rem}.section-loading-cv-heading--second{margin-top:.62rem}.section-loading-cv-kicker{width:32%}.section-loading-timeline-row{display:grid;grid-template-columns:16px minmax(0,1fr);gap:.62rem;align-items:start}.section-loading-timeline-dot{display:block;width:10px;height:10px;margin-top:.62rem;border-radius:999px;background:#94a3b82e}.section-loading-timeline-card{display:block;min-height:86px;border-radius:14px;border:1px solid color-mix(in oklab,var(--color-border) 86%,transparent);background:linear-gradient(#94a3b826,#94a3b826) 14px 15px / 44% 9px no-repeat,linear-gradient(#94a3b81a,#94a3b81a) 14px 36px / 70% 8px no-repeat,linear-gradient(#94a3b814,#94a3b814) 14px 56px / 56% 8px no-repeat,#94a3b80b}@media (min-width: 640px){.section-loading-skeletons--contact{grid-template-columns:minmax(0,1.16fr) minmax(240px,.84fr);gap:1.4rem}.section-loading-contact-info{padding-left:1.2rem;border-left:1px solid color-mix(in oklab,var(--color-border) 84%,transparent)}}@media (min-width: 768px){.section-loading-cv-layout{grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr)}}.section-loading-screen--skills,.section-loading-screen--projects{align-items:stretch;justify-content:flex-start;gap:0;width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);min-height:calc(100vh - 7.25rem);padding:clamp(1rem,2.4vw,2rem);border-radius:0;border:none;box-shadow:none;background:transparent}.section-loading-screen--skills:before,.section-loading-screen--projects:before{display:none}.section-loading-screen--skills .section-loading-orb,.section-loading-screen--projects .section-loading-orb{display:none}.section-loading-screen--skills .section-loading-label,.section-loading-screen--projects .section-loading-label{align-self:flex-start;margin-bottom:1rem;font-size:.78rem;letter-spacing:.12em}.section-loading-screen--skills{min-height:calc(100vh - 7.25rem);background:transparent}.section-loading-screen--skills .section-loading-skeletons{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.section-loading-card{position:relative;overflow:hidden;border:none;background:transparent;opacity:1}.section-loading-card:after,.section-loading-card-head:after,.section-loading-chip:after,.section-loading-card-cover:after,.section-loading-card-title:after,.section-loading-card-text:after,.section-loading-tag:after,.section-loading-tab:after,.section-loading-avatar:after,.section-loading-line:after,.section-loading-contact-field:after,.section-loading-contact-button:after,.section-loading-contact-method:after,.section-loading-social-dot:after,.section-loading-cv-hero:after,.section-loading-cv-panel:after,.section-loading-timeline-dot:after,.section-loading-timeline-card:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.08) 30%,rgba(255,255,255,.24) 50%,rgba(255,255,255,.08) 70%,transparent 100%);transform:translate3d(-100%,0,0);animation:section-skeleton-sheen 1.6s ease-out infinite;will-change:transform}.section-loading-card--skills{min-height:0;margin:0;padding:1rem;border-radius:18px;border:1px solid color-mix(in oklab,var(--color-border) 92%,transparent);background:color-mix(in oklab,var(--color-bg-soft) 96%,transparent);box-shadow:0 14px 30px #0206171f}.section-loading-card--wide{grid-column:span 2}.section-loading-card-head,.section-loading-chip,.section-loading-card-cover,.section-loading-card-title,.section-loading-card-text,.section-loading-tag,.section-loading-tab{position:relative;overflow:hidden}.section-loading-card-head{display:block;width:42%;height:12px;border-radius:999px;margin-bottom:.85rem;padding-bottom:.55rem;background:linear-gradient(color-mix(in oklab,var(--color-border) 84%,transparent),color-mix(in oklab,var(--color-border) 84%,transparent)) left bottom / 100% 1px no-repeat,#94a3b824}.section-loading-card-head--short{width:34%}.section-loading-card-head--long{width:56%}.section-loading-chip-grid{display:flex;flex-direction:column;gap:.55rem}.section-loading-chip{display:block;min-height:50px;height:52px;border-radius:14px;width:100%;--section-loading-chip-line-width: 56%;background:radial-gradient(circle at 17px 18px,rgba(148,163,184,.18) 0 10px,transparent 11px),linear-gradient(#94a3b826,#94a3b826) 40px 13px / calc(100% - 54px) 10px no-repeat,linear-gradient(#94a3b817,#94a3b817) 40px 29px / var(--section-loading-chip-line-width) 8px no-repeat,#94a3b80f}.section-loading-chip--short{--section-loading-chip-line-width: 42%}.section-loading-chip--medium{--section-loading-chip-line-width: 64%}.section-loading-screen--projects{min-height:calc(100vh - 7.25rem);background:transparent}.section-loading-tabs{display:inline-flex;align-items:center;gap:.55rem;width:fit-content;margin-bottom:1rem;padding:.34rem;border-radius:999px;border:none;background:transparent;opacity:1}.section-loading-tab{display:block;width:96px;height:32px;border-radius:999px;background:#94a3b81a}.section-loading-tab--active{background:#94a3b829}.section-loading-screen--projects .section-loading-skeletons{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.section-loading-card--project{min-height:272px;padding:.95rem;border-radius:20px;background:transparent}.section-loading-card-cover{display:block;width:100%;height:150px;border-radius:16px;margin-bottom:.9rem;background:#94a3b81a}.section-loading-card-copy{display:flex;flex-direction:column;gap:.58rem}.section-loading-card-title{display:block;width:68%;height:12px;border-radius:999px;background:#94a3b824}.section-loading-card-text{display:block;width:52%;height:8px;border-radius:999px;background:#94a3b814}.section-loading-card-text--short{width:44%}.section-loading-tag-row{display:flex;flex-wrap:wrap;gap:.42rem;margin-top:.12rem}.section-loading-tag{display:inline-block;width:62px;height:28px;border-radius:999px;background:#94a3b817}.section-loading-tag--short{width:48px}.section-loading-tag--tiny{width:36px}.section-loading-card--wide-mobile{grid-column:span 2}@media (min-width: 768px){.section-loading-screen--skills{width:100%;max-width:100%;margin-left:0;margin-right:0}.section-loading-screen--skills .section-loading-skeletons{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.section-loading-card--wide{grid-column:span 3}.section-loading-screen--projects .section-loading-skeletons{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.section-loading-card--wide-mobile{grid-column:auto}}@media (min-width: 1180px){.section-loading-screen--projects .section-loading-skeletons{grid-template-columns:repeat(4,minmax(0,1fr))}}html[data-theme=light] .section-loading-screen--skills,html[data-theme=light] .section-loading-screen--projects{border:none;box-shadow:none;background:transparent}html[data-theme=light] .section-loading-card,html[data-theme=light] .section-loading-tabs{background:transparent;border-color:transparent}html[data-theme=light] .section-loading-card--skills{background:#f9fafbf5;border-color:#94a3b838;box-shadow:none}html[data-theme=light] .section-loading-card--skills .section-loading-card-head{background:linear-gradient(#94a3b838,#94a3b838) left bottom / 100% 1px no-repeat,#94a3b824}html[data-theme=light] .section-loading-contact-form,html[data-theme=light] .section-loading-cv-hero,html[data-theme=light] .section-loading-cv-panel{background:#f9fafbf5;border-color:#94a3b838}html[data-theme=light] .section-loading-avatar,html[data-theme=light] .section-loading-contact-field,html[data-theme=light] .section-loading-timeline-card{border-color:#94a3b833;background-color:#ffffffb8}html[data-theme=light] .section-loading-contact-info{border-left-color:#94a3b838}@media (max-width: 767px){.section-loading-screen--skills{min-height:calc(100vh - 6.6rem);padding:.95rem}.section-loading-screen--skills .section-loading-skeletons{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.section-loading-card--skills{padding:.86rem}.section-loading-screen--projects{min-height:calc(100vh - 6.6rem);padding:.95rem}.section-loading-tabs{margin-bottom:.85rem}.section-loading-tab{width:82px;height:30px}.section-loading-screen--projects .section-loading-skeletons{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.section-loading-card--project{min-height:218px;padding:.78rem}.section-loading-card-cover{height:118px}}@keyframes section-loader-enter{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes section-loader-sheen{0%{transform:translate3d(-42%,0,0)}to{transform:translate3d(42%,0,0)}}@keyframes section-skeleton-sheen{0%{transform:translate3d(-100%,0,0)}to{transform:translate3d(100%,0,0)}}@keyframes section-label-pulse{0%,to{opacity:.72}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.section-loading-screen,.section-loading-screen:before,.section-loading-orb,.section-loading-label,.section-loading-skeleton:after,.section-loading-card:after,.section-loading-card-head:after,.section-loading-chip:after,.section-loading-card-cover:after,.section-loading-card-title:after,.section-loading-card-text:after,.section-loading-tag:after,.section-loading-tab:after,.section-loading-avatar:after,.section-loading-line:after,.section-loading-contact-field:after,.section-loading-contact-button:after,.section-loading-contact-method:after,.section-loading-social-dot:after,.section-loading-cv-hero:after,.section-loading-cv-panel:after,.section-loading-timeline-dot:after,.section-loading-timeline-card:after,.splash-overlay,.splash-bg,.splash-bg:before,.splash-bg:after,.splash-content,.splash-content:after,.splash-line{animation:none}}.page-fade-enter{opacity:0}.page-fade-enter.page-fade-enter-active{opacity:1;transition:opacity .2s ease-out}.modal-backdrop{position:fixed;inset:0;background:#0f172acc;display:flex;align-items:center;justify-content:center;z-index:60;opacity:0;transform:scale(1.02);pointer-events:none;transition:opacity .17s ease-out,transform .17s ease-out}.modal-backdrop.open{opacity:1;transform:scale(1);pointer-events:auto}.modal-content{max-width:100%;max-height:100%;background:#020617;border-radius:18px;border:1px solid rgba(148,163,184,.4);padding:.5rem;display:flex;flex-direction:column;opacity:0;transform:translateY(14px) scale(.985);transition:opacity .2s ease,transform .22s cubic-bezier(.22,1,.36,1)}.modal-backdrop.open .modal-content{opacity:1;transform:translateY(0) scale(1)}.modal-backdrop-fullscreen{padding:0;align-items:stretch;justify-content:stretch;background:var(--color-bg);z-index:1000}.modal-backdrop-lightbox{z-index:1001}.modal-backdrop-fullscreen .modal-content-fullscreen{position:relative;max-width:none;max-height:none;width:100%;flex:1;min-height:100vh;min-height:100dvh;border-radius:0;border:none;padding:0;background:var(--color-bg);overflow:hidden;display:flex;flex-direction:column;transform:translateY(18px) scale(.992);opacity:0;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .23s ease}.modal-backdrop-fullscreen.open .modal-content-fullscreen{transform:translateY(0) scale(1);opacity:1}.folder-gallery-fullscreen{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.modal-image-wrapper{position:relative;overflow:hidden;border-radius:14px}.cv-modal{max-width:min(720px,100vw - 2rem);max-height:min(80vh,560px);display:flex;flex-direction:column}.cv-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.cv-modal-body{flex:1;overflow:auto}.cv-modal-close{min-width:38px;height:38px;padding:0 .8rem;border:1px solid color-mix(in oklab,var(--color-primary) 16%,var(--color-border));border-radius:12px;background:color-mix(in oklab,var(--color-bg-soft) 94%,transparent);color:var(--color-text);cursor:pointer;font-size:.88rem;font-weight:600;transition:transform .16s ease,border-color .2s ease,background-color .2s ease,box-shadow .2s ease;box-shadow:0 10px 22px #02061724}.modal-image{max-width:100vw;max-height:calc(100vh - 120px);object-fit:contain;display:block;transition:transform .2s ease-out}.modal-image-wrapper:active .modal-image{transform:scale(.98)}.lightbox-image-container{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:.8rem;touch-action:none;-webkit-user-select:none;user-select:none}.lightbox-zoom-shell{transition:transform .2s ease;transform-origin:center center;width:100%;height:100%;display:flex;align-items:center;justify-content:center;will-change:transform}.lightbox-zoom-shell.is-panning{transition:none}.lightbox-image{user-select:none;pointer-events:auto;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}@media (max-width: 767px){.lightbox-image-container{padding:.35rem}.lightbox-image{width:100%;max-height:100%}}@keyframes spin{to{transform:rotate(360deg)}}.app-loading-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:80;background:radial-gradient(circle at top,rgba(15,23,42,.95) 0,transparent 55%),radial-gradient(circle at bottom,rgba(15,23,42,1) 0,transparent 50%),var(--color-bg)}html[data-theme=light] .app-loading-overlay{background:radial-gradient(circle at top,rgba(244,243,255,.94) 0,transparent 55%),radial-gradient(circle at bottom,rgba(241,238,255,1) 0,transparent 50%),var(--color-bg)}.app-loading-logo-shell{width:104px;height:104px;border-radius:28px;background:#0f172ae6;display:flex;align-items:center;justify-content:center;box-shadow:0 22px 45px #000c;animation:app-logo-pulse 1.6s ease-in-out infinite}.app-loading-logo{max-width:80px;max-height:80px;object-fit:contain}.app-loading-logo-fallback{font-size:1.2rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--color-muted)}@keyframes app-logo-pulse{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1.03);opacity:1}to{transform:scale(.9);opacity:.7}}.splash-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;background:#020617}html[data-theme=light] .splash-overlay{background:#f5f1ea}.splash-bg{--splash-stars-opacity: .86;position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 6% 18%,rgba(226,232,240,.82) 0 1px,transparent 1.8px),radial-gradient(circle at 13% 67%,rgba(148,163,184,.62) 0 1px,transparent 1.7px),radial-gradient(circle at 19% 34%,rgba(248,250,252,.72) 0 1.4px,transparent 2.2px),radial-gradient(circle at 27% 82%,rgba(203,213,225,.64) 0 1px,transparent 1.8px),radial-gradient(circle at 34% 12%,rgba(241,245,249,.86) 0 1.2px,transparent 2px),radial-gradient(circle at 41% 57%,rgba(148,163,184,.56) 0 1px,transparent 1.7px),radial-gradient(circle at 48% 23%,rgba(226,232,240,.78) 0 1px,transparent 1.8px),radial-gradient(circle at 55% 76%,rgba(248,250,252,.68) 0 1.5px,transparent 2.4px),radial-gradient(circle at 63% 38%,rgba(148,163,184,.58) 0 1px,transparent 1.8px),radial-gradient(circle at 71% 14%,rgba(226,232,240,.74) 0 1px,transparent 1.9px),radial-gradient(circle at 79% 66%,rgba(241,245,249,.82) 0 1.2px,transparent 2px),radial-gradient(circle at 87% 29%,rgba(148,163,184,.58) 0 1px,transparent 1.8px),radial-gradient(circle at 94% 84%,rgba(226,232,240,.72) 0 1.3px,transparent 2.2px);opacity:.86;mix-blend-mode:screen;transform-origin:center;animation:splash-starfield-enter .9s cubic-bezier(.16,1,.3,1) both}.splash-bg:before,.splash-bg:after{content:"";position:absolute;width:2px;height:2px;border-radius:999px;background:currentColor;color:#f8fafcb8;opacity:.72}.splash-bg:before{top:11vh;left:8vw;box-shadow:9vw 41vh #cbd5e185,16vw 6vh #f8fafcdb,22vw 72vh #94a3b880,31vw 25vh #e2e8f0bd,39vw 86vh #f8fafc9e,46vw 9vh #94a3b87a,53vw 49vh #e2e8f0ad,61vw 81vh #cbd5e18f,69vw 21vh #f8fafcc7,77vw 58vh #94a3b885,84vw 11vh #e2e8f0a8,91vw 73vh #f8fafcb3;animation:splash-stars-drift-a 21s ease-in-out infinite alternate,splash-stars-glow 5.4s ease-in-out infinite}.splash-bg:after{top:21vh;left:4vw;width:3px;height:3px;color:#e2e8f075;box-shadow:7vw 54vh #e2e8f057,18vw 17vh #f8fafc7a,29vw 63vh #cbd5e157,37vw 33vh #f8fafc6b,50vw 74vh #e2e8f04d,58vw 3vh #f8fafc70,66vw 45vh #cbd5e15c,75vw 88vh #f8fafc61,88vw 37vh #e2e8f057,95vw 7vh #f8fafc75;filter:blur(.15px);animation:splash-stars-drift-b 16s ease-in-out infinite alternate,splash-stars-blink 3.1s ease-in-out infinite}html[data-theme=light] .splash-bg:before{color:#46435266;opacity:.52;box-shadow:9vw 41vh #4643523d,16vw 6vh #6f69775c,22vw 72vh #46435233,31vw 25vh #6f69774d,39vw 86vh #4643523d,46vw 9vh #6f697738,53vw 49vh #46435247,61vw 81vh #6f697738,69vw 21vh #4643524d,77vw 58vh #6f697738,84vw 11vh #46435242,91vw 73vh #6f697747}html[data-theme=light] .splash-bg:after{color:#4643523d;opacity:.34;box-shadow:7vw 54vh #4643522e,18vw 17vh #6f697738,29vw 63vh #46435229,37vw 33vh #6f697733,50vw 74vh #46435229,58vw 3vh #6f697738,66vw 45vh #4643522e,75vw 88vh #6f69772e,88vw 37vh #46435229,95vw 7vh #6f697738}html[data-theme=light] .splash-bg{--splash-stars-opacity: .64;background-image:radial-gradient(circle at 6% 18%,rgba(70,67,82,.32) 0 1px,transparent 1.8px),radial-gradient(circle at 13% 67%,rgba(111,105,119,.28) 0 1px,transparent 1.7px),radial-gradient(circle at 19% 34%,rgba(70,67,82,.26) 0 1.4px,transparent 2.2px),radial-gradient(circle at 27% 82%,rgba(111,105,119,.26) 0 1px,transparent 1.8px),radial-gradient(circle at 34% 12%,rgba(70,67,82,.3) 0 1.2px,transparent 2px),radial-gradient(circle at 41% 57%,rgba(111,105,119,.24) 0 1px,transparent 1.7px),radial-gradient(circle at 48% 23%,rgba(70,67,82,.28) 0 1px,transparent 1.8px),radial-gradient(circle at 55% 76%,rgba(111,105,119,.26) 0 1.5px,transparent 2.4px),radial-gradient(circle at 63% 38%,rgba(70,67,82,.24) 0 1px,transparent 1.8px),radial-gradient(circle at 71% 14%,rgba(111,105,119,.28) 0 1px,transparent 1.9px),radial-gradient(circle at 79% 66%,rgba(70,67,82,.26) 0 1.2px,transparent 2px),radial-gradient(circle at 87% 29%,rgba(111,105,119,.24) 0 1px,transparent 1.8px),radial-gradient(circle at 94% 84%,rgba(70,67,82,.26) 0 1.3px,transparent 2.2px);mix-blend-mode:normal;opacity:.64}@keyframes splash-starfield-enter{0%{opacity:0}to{opacity:var(--splash-stars-opacity)}}@keyframes splash-stars-drift-a{0%{transform:translateZ(0) rotate(.001deg)}to{transform:translate3d(14px,-22px,0) rotate(.001deg)}}@keyframes splash-stars-drift-b{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-18px,12px,0) scale(1.04)}}@keyframes splash-stars-blink{0%,to{opacity:.24}50%{opacity:.58}}@keyframes splash-stars-glow{0%,to{opacity:.48}50%{opacity:.82}}.splash-content{position:relative;padding:0 1.25rem;width:min(92vw,860px);text-align:center;animation:splash-content-enter .92s cubic-bezier(.16,1,.3,1) both}.splash-content:after{content:"";display:block;width:min(9rem,42vw);height:1px;margin:1.08rem auto 0;background:#f8fafc75;transform-origin:center;animation:splash-rule-enter .84s cubic-bezier(.16,1,.3,1) .16s both}html[data-theme=light] .splash-content:after{background:#46435252}.splash-lines{display:grid;gap:0}.splash-line{font-family:Space Grotesk,Ubuntu,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:clamp(1.35rem,5.2vw,2.15rem);font-weight:700;letter-spacing:0;animation:splash-line-cycle 1.25s cubic-bezier(.16,1,.3,1) both;text-shadow:0 14px 50px rgba(0,0,0,.45);will-change:opacity,transform,filter}.splash-line--single{opacity:.98}@keyframes splash-content-enter{0%{opacity:0;transform:translate3d(0,18px,0) scale(.975);filter:blur(10px)}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}@keyframes splash-rule-enter{0%{opacity:0;transform:scaleX(.18)}to{opacity:1;transform:scaleX(1)}}@keyframes splash-line-in{0%{opacity:0;transform:translate3d(0,14px,0) scale(.985);filter:blur(8px)}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}@keyframes splash-line-cycle{0%{opacity:0;transform:translate3d(0,18px,0) scale(.97);filter:blur(10px)}16%{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}78%{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}to{opacity:0;transform:translate3d(0,-16px,0) scale(1.03);filter:blur(9px)}}.splash-overlay--exit{animation:splash-exit 1.04s cubic-bezier(.16,1,.3,1) forwards;pointer-events:none}@keyframes splash-exit{0%{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}45%{opacity:.88;transform:translate3d(0,-3px,0) scale(1.01);filter:blur(.4px)}to{opacity:0;transform:translate3d(0,-14px,0) scale(1.04);filter:blur(5px)}}.mobile-route-transition{animation:route-section-enter .36s cubic-bezier(.22,1,.36,1);will-change:opacity,transform,filter}.section.reveal>*{opacity:0;transform:translateY(10px);transition:opacity .32s ease-out,transform .32s ease-out}.section.reveal.visible>*{opacity:1;transform:translateY(0)}.section.reveal.visible .section-header{animation:section-header-enter .38s cubic-bezier(.22,1,.36,1)}.section.reveal .grid>*{opacity:0;transform:translateY(12px) scale(.99);transition:opacity .36s ease-out,transform .36s cubic-bezier(.22,1,.36,1)}.section.reveal.visible .grid>*{opacity:1;transform:translateY(0) scale(1)}.project-card-reveal{animation:project-card-stagger-in .46s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--project-stagger, 0ms)}.section.reveal .grid>*:nth-child(2){transition-delay:40ms}.section.reveal .grid>*:nth-child(3){transition-delay:80ms}.section.reveal .grid>*:nth-child(4){transition-delay:.12s}@keyframes section-header-enter{0%{opacity:0;transform:translateY(10px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes project-card-stagger-in{0%{opacity:0;transform:translateY(12px) scale(.985);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@media (min-width: 768px){.mobile-route-transition{animation:route-section-enter-desktop .4s cubic-bezier(.22,1,.36,1)}}@keyframes route-section-enter{0%{opacity:0;transform:translateY(14px) scale(.99);filter:blur(4px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes route-section-enter-desktop{0%{opacity:0;transform:translateY(18px) scale(.992);filter:blur(5px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}button,a,.card-tappable,.chip,.project-link,.bottom-nav-item{transition:transform .18s cubic-bezier(.22,1,.36,1),filter .18s ease,box-shadow .2s ease,opacity .18s ease;transform-origin:center}button:active,a:active,.card-tappable:active,.chip:active,.project-link:active,.bottom-nav-item:active{transform:none}.lightbox-nav-btn:active{transform:translate3d(0,-50%,0)}.lightbox-close-btn:active{transform:none}.tap-feedback{animation:tap-feedback-pop .36s cubic-bezier(.22,1,.36,1)}.lightbox-nav-btn.tap-feedback{animation:lightbox-nav-tap-feedback .36s cubic-bezier(.22,1,.36,1)}.lightbox-close-btn.tap-feedback{animation:lightbox-close-tap-feedback .36s cubic-bezier(.22,1,.36,1)}@keyframes tap-feedback-pop{0%{transform:scale(1)}30%{transform:scale(.95)}70%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes lightbox-nav-tap-feedback{0%{transform:translate3d(0,-50%,0) scale(1)}30%{transform:translate3d(0,-50%,0) scale(.95)}70%{transform:translate3d(0,-50%,0) scale(1.02)}to{transform:translate3d(0,-50%,0) scale(1)}}@keyframes lightbox-close-tap-feedback{0%{transform:scale(1)}30%{transform:scale(.95)}70%{transform:scale(1.02)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.tap-feedback{animation:none!important}}
