:root{--primary:#00f3ff;--secondary:#ff4fd8;--dark-bg:#0a0a16;--card-bg:#141428e6;--card-bg-strong:#0e0e20fa;--text:#e0e0ff;--text-dim:#e0e0ff9e;--danger:#ff4fd8;--focus:#fff;--ui-icon-size:1.3rem;--ui-icon-size-small:1.15rem;--ui-icon-box:30px;--ui-image-icon-size:22px}*{box-sizing:border-box}html{color-scheme:dark}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 10% 20%, #00f3ff09, transparent 20%), radial-gradient(circle at 90% 80%, #ff4fd809, transparent 20%), var(--dark-bg);margin:0;padding:clamp(18px,4vw,36px);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.cyber-grid{z-index:-1;pointer-events:none;background-image:linear-gradient(#00f3ff11 1px,#0000 1px),linear-gradient(90deg,#00f3ff11 1px,#0000 1px);background-size:20px 20px;position:fixed;inset:0;mask-image:linear-gradient(#000000e6,#0000008c)}.container{flex-direction:column;justify-content:center;align-items:center;gap:20px;width:min(100%,800px);min-height:calc(100vh - clamp(36px,8vw,72px));margin:0 auto;display:flex}.profile{flex-direction:column;align-items:center;gap:18px;display:flex}.photo-frame{aspect-ratio:1;background:#00000059;border:1px solid #00f3ffe6;place-items:center;width:clamp(220px,36vw,300px);display:grid;overflow:hidden;box-shadow:0 0 8px #00f3ff6b,0 0 22px #00f3ff1f,inset 0 0 8px #00f3ff14}.profile-photo{object-fit:cover;width:100%;height:100%;display:block}.name-title{text-align:center}h1{color:var(--primary);text-shadow:0 0 3px #00f3ff52;margin:0 0 5px;font-size:clamp(1.75rem,5vw,2.15rem);line-height:1.1}.title{color:var(--secondary);text-shadow:0 0 2px #ff4fd833;margin:0;font-size:1.16rem}.menu-stack{flex-direction:column;align-items:center;gap:0;width:100%;display:flex}.menu-container{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.private-menu-row{margin-top:0}.menu-button{width:78px;min-height:82px;color:var(--text);background:0 0;border:none;border-radius:3px;flex-direction:column;flex:0 0 78px;justify-content:center;align-items:center;padding:12px 4px;text-decoration:none;transition:transform .18s;display:flex}.menu-button:hover{box-shadow:none;background:0 0;transform:translateY(-3px)}.menu-button:focus-visible,.cyber-heart:focus-visible,.unlock-button:focus-visible,.password-submit:focus-visible,.modal-close:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.menu-icon{color:var(--primary);text-shadow:none;margin-bottom:8px;font-size:1.4rem;transition:color .18s,text-shadow .18s}.menu-button:hover .menu-icon{color:var(--secondary);text-shadow:0 0 4px #ff4fd83d}.menu-image-mask{width:1.4rem;height:1.4rem;-webkit-mask-image:var(--menu-icon-mask);mask-image:var(--menu-icon-mask);background:currentColor;transition:transform .18s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.menu-button:hover .menu-image-mask{transform:scale(1.04)}.menu-label{text-align:center;font-size:.86rem;font-weight:600}.secret-section{flex-direction:column;align-items:center;gap:12px;width:100%;animation:.3s both secret-in;display:flex}footer{width:min(100%,520px);color:var(--text-dim);text-align:center;border-top:1px solid #00f3ff33;margin-top:8px;padding:14px 10px 0;font-size:.8rem}.footer-row{justify-content:center;align-items:center;gap:6px;line-height:1.2;display:flex}.footer-unlock-row{justify-content:center;margin-top:5px;display:flex}.copyright{white-space:nowrap}.made-with-love{white-space:nowrap;align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.cyber-heart{width:1.25em;height:1.25em;color:var(--secondary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;font-size:1em;line-height:1;transition:transform .18s,filter .18s;animation:4s infinite heart-flicker;display:inline-grid}.cyber-heart i{line-height:1;display:block}.cyber-heart:hover{filter:drop-shadow(0 0 3px #00f3ff59);animation:none;transform:scale(1.12)}.unlock-button{width:1.35em;height:1.35em;color:var(--primary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;font-size:.9rem;line-height:1;text-decoration:none;transition:color .18s,transform .18s,filter .18s;display:inline-grid}.unlock-button:hover{color:var(--secondary);filter:drop-shadow(0 0 3px #ff4fd833);transform:translateY(-1px)}.password-modal{border:1px solid var(--primary);width:min(92vw,410px);color:var(--text);background:var(--card-bg-strong);border-radius:5px;padding:0;box-shadow:0 18px 55px #00000075,0 0 8px #00f3ff24}.password-modal::backdrop{backdrop-filter:blur(4px);background:#060612e0}.password-box{text-align:center;padding:34px 30px 30px;position:relative}.terminal-label{color:var(--secondary);letter-spacing:.18em;margin:0 0 9px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.65rem}.password-box h2{color:var(--primary);text-shadow:0 0 3px #00f3ff52;margin:0 0 22px;font-size:1.3rem}.modal-close{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;font-size:1.45rem;line-height:1;position:absolute;top:8px;right:10px}.modal-close:hover{color:var(--secondary)}.password-input{width:100%;color:var(--text);caret-color:var(--secondary);background:#00000085;border:1px solid #ff4fd8b8;border-radius:3px;outline:none;margin-bottom:20px;padding:12px 14px;transition:box-shadow .18s}.password-input:focus,.password-input:focus-visible{outline:none;box-shadow:0 0 0 2px #ff4fd81a}.password-input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 2px #ff4fd81a}.password-submit{border:1px solid var(--primary);width:100%;color:var(--text);cursor:pointer;background:0 0;border-radius:3px;padding:10px 20px;transition:color .18s,background .18s,box-shadow .18s}.password-submit:hover:not(:disabled){color:var(--dark-bg);background:var(--primary);box-shadow:0 0 0 1px #00f3ff29}.password-submit:disabled{cursor:wait;opacity:.65}.submit-loader,.password-submit.is-loading .submit-text{display:none}.password-submit.is-loading .submit-loader{display:inline}.password-error{min-height:1.2em;color:var(--secondary);text-shadow:none;margin:10px 0 0;font-size:.85rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes flicker{0%,to{opacity:1}50%{opacity:.88}}@keyframes heart-flicker{0%,85%,to{filter:drop-shadow(0 0 1px #ff4fd833)}88%,95%{filter:drop-shadow(0 0 2px #00f3ff52)}}@keyframes secret-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.flicker{animation:3s infinite flicker}@media (width<=600px){.container{justify-content:flex-start}.menu-container{gap:8px}.menu-button{width:78px;min-height:74px}}@media (width<=400px){body{padding-inline:12px}.menu-container{gap:6px}.menu-button{width:80px;min-height:68px;padding:9px 3px}.menu-icon{margin-bottom:6px;font-size:1.3rem}.menu-label{font-size:.8rem}.password-box{padding-inline:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.blog-body{min-height:100vh}.blog-page{flex-direction:column;width:min(100%,800px);min-height:calc(100vh - clamp(36px,8vw,72px));margin:0 auto;display:flex}.blog-shell{flex:1 0 auto;width:100%;margin:0 auto;padding-block:clamp(10px,3vw,34px)}.blog-header{text-align:center;margin-bottom:30px;position:relative}.blog-home-link,.blog-nav-action{color:var(--text-dim);align-items:center;gap:7px;font-size:.86rem;text-decoration:none;transition:color .18s,transform .18s;display:inline-flex}.blog-home-link i,.blog-nav-action i,.programs-home-link i,.socials-home-link i{place-items:center;width:1.15em;font-size:1rem;display:inline-grid}.blog-home-link{color:var(--text-dim);position:absolute;top:8px;left:0}.blog-home-action{color:var(--text-dim)}.blog-home-link:hover,.blog-home-action:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d}.blog-nav-action:hover{color:var(--primary);transform:translateY(-1px)}.blog-home-link:hover,.blog-home-action:hover{color:var(--secondary);transform:translateY(-1px)}.blog-heading{flex-direction:column;align-items:center;gap:5px;display:inline-flex}.blog-title{color:var(--primary);text-shadow:0 0 3px #00f3ff52;margin:0;font-size:clamp(1.75rem,5vw,2.15rem);line-height:1.1}.blog-lead{color:var(--secondary);text-shadow:0 0 2px #ff4fd829;margin:0;font-size:1.05rem;line-height:1.35}.blog-categories{gap:12px;display:grid}.blog-category{margin:0}.blog-category-summary{min-height:48px;color:var(--text);cursor:pointer;user-select:none;grid-template-columns:26px minmax(0,1fr) auto 18px;align-items:center;gap:9px;padding:8px 3px;list-style:none;transition:color .18s;display:grid}.blog-category-summary::-webkit-details-marker{display:none}.blog-category-summary::marker{content:""}.blog-category-summary:hover{color:var(--primary)}.blog-category-summary:focus-visible,.blog-home-link:focus-visible,.blog-nav-action:focus-visible,.post-row:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.blog-category-folder{width:22px;height:22px;color:var(--primary);font-size:var(--ui-icon-size-small);place-items:center;display:grid;position:relative}.blog-folder-open{color:var(--secondary);display:none}.blog-category[open] .blog-folder-closed{display:none}.blog-category[open] .blog-folder-open{display:inline-block}.blog-category-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.95rem;font-weight:650;line-height:1.25;overflow:hidden}.blog-category[open] .blog-category-name{color:var(--secondary)}.blog-category-count{min-width:22px;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;font-size:.76rem}.blog-category-chevron{color:var(--text-dim);font-size:.7rem;transition:color .18s,transform .18s}.blog-category[open] .blog-category-chevron{color:var(--primary);transform:rotate(180deg)}.post-list{border-bottom:0}.post-row{min-height:58px;color:var(--text);border-bottom:0;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 3px 11px 38px;text-decoration:none;transition:color .18s,transform .18s;display:grid}.post-row:last-child{border-bottom:0}.post-row:hover{color:var(--primary);transform:translate(3px)}.post-row-icon{color:var(--primary);font-size:var(--ui-icon-size-small);place-items:center;transition:color .18s;display:grid}.post-row:hover .post-row-icon{color:var(--secondary)}.post-row-content{flex-direction:column;gap:3px;min-width:0;display:flex}.post-row-title{font-size:.96rem;font-weight:600;line-height:1.35}.post-row-description{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;line-height:1.35;overflow:hidden}.post-row-arrow{color:var(--text-dim);font-size:.9rem;transition:color .18s}.post-row:hover .post-row-arrow{color:var(--secondary)}.blog-empty{color:var(--text-dim);text-align:center;border-block:1px solid #00f3ff29;padding:24px 0;line-height:1.6}.blog-empty p{margin:0 0 6px}.blog-empty code{color:var(--secondary)}.blog-post{width:min(100%,760px);margin:0 auto}.post-nav{justify-content:space-between;align-items:center;gap:18px;margin-bottom:clamp(28px,6vw,46px);display:flex}.post-header{border-bottom:1px solid #00f3ff29;padding-bottom:25px}.post-category{color:var(--secondary);align-items:center;gap:7px;margin-bottom:10px;font-size:.8rem;font-weight:700;display:flex}.post-category i{color:var(--primary)}.post-header time{color:var(--text-dim);margin-bottom:9px;font-size:.8rem;display:block}.post-header h1{color:var(--primary);text-shadow:0 0 3px #00f3ff3d;margin:0;font-size:clamp(1.65rem,5vw,2.25rem);line-height:1.15}.post-description{max-width:680px;color:var(--text-dim);margin:14px 0 0;font-size:1rem;line-height:1.6}.post-tags{flex-wrap:wrap;gap:10px;margin:17px 0 0;padding:0;list-style:none;display:flex}.post-tags li{color:#ff4fd8d1;font-size:.76rem}.markdown-content{color:#e0e0ffe6;padding-top:26px;font-size:1rem;line-height:1.78}.markdown-content>:first-child{margin-top:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{line-height:1.25}.markdown-content h1{color:var(--primary);margin:2.2em 0 .7em;font-size:1.6rem}.markdown-content h2{color:var(--primary);margin:2.1em 0 .7em;font-size:1.38rem}.markdown-content h3{color:var(--text);margin:1.8em 0 .6em;font-size:1.16rem}.markdown-content h4{color:var(--text);margin:1.6em 0 .55em;font-size:1.05rem}.markdown-content p,.markdown-content ul,.markdown-content ol,.markdown-content blockquote,.markdown-content pre{margin-block:1em}.markdown-content a{color:var(--primary);text-underline-offset:3px}.markdown-content strong{color:var(--text)}.markdown-content code{color:#ff8be6;background:#ff4fd814;border-radius:3px;padding:.12em .32em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.markdown-content pre{background:#060612b8;border-left:2px solid #00f3ff8c;padding:16px 18px;line-height:1.55;overflow-x:auto}.markdown-content pre code{color:var(--text);background:0 0;padding:0}.markdown-content blockquote{color:var(--text-dim);border-left:2px solid #ff4fd86b;margin-inline:0;padding:4px 0 4px 18px}.markdown-content hr{border:0;border-top:1px solid #00f3ff29;margin:2.4rem 0}.markdown-content img{max-width:100%;height:auto}.markdown-content table{border-collapse:collapse;width:100%}.markdown-content th,.markdown-content td{text-align:left;border:1px solid #00f3ff24;padding:8px 10px}.blog-page .site-footer{flex:none;margin:34px auto 0}@media (width<=600px){.blog-shell{padding-top:4px}.blog-header{margin-bottom:25px;padding-top:38px}.blog-home-link{top:2px}.post-row{grid-template-columns:24px minmax(0,1fr) auto;gap:8px}}@media (width<=400px){.blog-category-summary{grid-template-columns:24px minmax(0,1fr) auto 16px;gap:7px}.post-row{padding-left:27px}.post-row-title{font-size:.93rem}}.programs-body-page{min-height:100vh}.programs-page{flex-direction:column;width:min(100%,1100px);min-height:calc(100vh - clamp(36px,8vw,72px));margin:0 auto;display:flex}.programs-shell{flex:1 0 auto;width:100%;padding-block:clamp(10px,3vw,34px)}.programs-page .site-footer{flex:none;margin:34px auto 0}.programs-header{text-align:center;margin-bottom:30px;position:relative}.programs-home-link{color:var(--text-dim);align-items:center;gap:7px;font-size:.86rem;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s;display:inline-flex;position:absolute;top:8px;left:0}.programs-home-link:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d;transform:translateY(-1px)}.programs-home-link:focus-visible,.program-category-summary:focus-visible,.program-row:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.programs-heading{flex-direction:column;align-items:center;display:inline-flex}.programs-title{color:var(--primary);text-shadow:0 0 3px #00f3ff52;margin:0;font-size:clamp(1.75rem,5vw,2.15rem);line-height:1.1}.programs-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:50px;display:grid}.programs-column{flex-direction:column;gap:12px;min-width:0;display:flex}.program-category{margin:0}.program-category-summary{min-height:50px;color:var(--text);cursor:pointer;user-select:none;grid-template-columns:28px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:8px 3px;list-style:none;transition:color .18s;display:grid}.program-category-summary::-webkit-details-marker{display:none}.program-category-summary::marker{content:""}.program-category-summary:hover{color:var(--primary)}.program-category-icon{width:24px;height:24px;color:var(--primary);font-size:var(--ui-icon-size-small);place-items:center;transition:color .18s,text-shadow .18s;display:grid}.program-category-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.97rem;font-weight:650;line-height:1.25;overflow:hidden}.program-category-chevron{color:var(--text-dim);font-size:.7rem;transition:color .18s,transform .18s}.program-category[open] .program-category-title,.program-category[open] .program-category-icon{color:var(--secondary)}.program-category[open] .program-category-icon{text-shadow:0 0 4px #ff4fd82e}.program-category[open] .program-category-chevron{color:var(--primary);transform:rotate(180deg)}.program-list{padding:2px 0 9px 38px}.program-row{min-height:58px;color:var(--text);grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;padding:9px 3px;text-decoration:none;transition:color .18s,transform .18s;display:grid}.program-row:hover{color:var(--primary);transform:translate(3px)}.program-icon-wrap{width:var(--ui-icon-box);height:var(--ui-icon-box);place-items:center;display:grid;position:relative}.program-icon-image{z-index:1;width:var(--ui-icon-box);height:var(--ui-icon-box);object-fit:contain;display:block;position:relative}.program-icon-fallback{color:var(--primary);font-size:var(--ui-icon-size);place-items:center;display:none;position:absolute;inset:0}.program-icon-wrap.is-missing .program-icon-image{display:none}.program-icon-wrap.is-missing .program-icon-fallback{display:grid}.program-row:hover .program-icon-fallback{color:var(--secondary)}.program-row-content{flex-direction:column;gap:3px;min-width:0;display:flex}.program-row-name{font-size:.94rem;font-weight:600;line-height:1.3}.program-row-description{color:var(--text-dim);font-size:.79rem;line-height:1.35}@media (width<=850px){.programs-page{width:min(100%,800px)}.programs-grid{grid-template-columns:1fr;gap:12px}}@media (width<=520px){.programs-header{padding-top:36px}.programs-home-link{top:0}.program-list{padding-left:20px}.program-row{grid-template-columns:34px minmax(0,1fr);gap:9px}.program-icon-wrap,.program-icon-image{width:28px;height:28px}}.socials-body-page{min-height:100vh}.socials-page{flex-direction:column;width:min(100%,1000px);min-height:calc(100vh - clamp(36px,8vw,72px));margin:0 auto;display:flex}.socials-shell{flex:1 0 auto;width:100%;padding-block:clamp(10px,3vw,34px)}.socials-page .site-footer{flex:none;margin:34px auto 0}.socials-header{text-align:center;margin-bottom:30px;position:relative}.socials-home-link{color:var(--text-dim);align-items:center;gap:7px;font-size:.86rem;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s;display:inline-flex;position:absolute;top:8px;left:0}.socials-home-link:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d;transform:translateY(-1px)}.socials-home-link:focus-visible,.social-row:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.socials-heading{flex-direction:column;align-items:center;display:inline-flex}.socials-title{color:var(--primary);text-shadow:0 0 3px #00f3ff52;margin:0;font-size:clamp(1.75rem,5vw,2.15rem);line-height:1.1}.socials-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:50px;display:grid}.socials-column{flex-direction:column;gap:25px;min-width:0;display:flex}.social-category{min-width:0}.social-category-title{color:var(--text);align-items:center;gap:10px;margin:0 0 7px;padding:8px 3px;font-size:.97rem;font-weight:650;line-height:1.25;display:flex}.social-category-icon{width:24px;height:24px;color:var(--primary);font-size:var(--ui-icon-size-small);flex:none;place-items:center;display:grid}.social-list{flex-direction:column;display:flex}.social-row{min-height:58px;color:var(--text);grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:9px 3px 9px 38px;text-decoration:none;transition:color .18s,transform .18s;display:grid}.social-row:hover{color:var(--primary);transform:translate(3px)}.social-row-icon{width:var(--ui-icon-box);height:var(--ui-icon-box);color:var(--primary);font-size:var(--ui-icon-size);place-items:center;transition:color .18s,text-shadow .18s;display:grid}.social-row:hover .social-row-icon{color:var(--secondary);text-shadow:0 0 4px #ff4fd82e}.social-row-image-mask{width:var(--ui-image-icon-size);height:var(--ui-image-icon-size);-webkit-mask-image:var(--social-icon-mask);mask-image:var(--social-icon-mask);background:currentColor;transition:transform .18s;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.social-row:hover .social-row-image-mask{transform:scale(1.04)}.social-row-content{flex-direction:column;gap:3px;min-width:0;display:flex}.social-row-name{font-size:.94rem;font-weight:600;line-height:1.3}.social-row-description{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.79rem;line-height:1.35;overflow:hidden}@media (width<=850px){.socials-page{width:min(100%,800px)}.socials-grid{grid-template-columns:1fr;gap:25px}}@media (width<=520px){.socials-header{padding-top:36px}.socials-home-link{top:0}.social-row{grid-template-columns:30px minmax(0,1fr);gap:9px;padding-left:20px}.social-row-icon{width:28px;height:28px;font-size:1.2rem}.social-row-image-mask{width:20px;height:20px}}.portfolio-body-page{min-height:100vh;display:block}.portfolio-page{flex-direction:column;width:min(1180px,100% - 32px);min-height:100vh;margin:0 auto;display:flex}.portfolio-page .site-footer{flex:none;margin:34px auto 0}.portfolio-shell{flex:1;width:100%;padding:52px 0 24px}.portfolio-header{text-align:center;margin-bottom:32px;position:relative}.portfolio-home-link{color:var(--text-dim);align-items:center;gap:7px;font-size:.86rem;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s;display:inline-flex;position:absolute;top:8px;left:0}.portfolio-home-link:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d;transform:translateY(-1px)}.portfolio-home-link:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.portfolio-heading{flex-direction:column;align-items:center;display:inline-flex}.portfolio-title{color:var(--primary);text-shadow:0 0 3px #00f3ff52;margin:0;font-size:clamp(1.75rem,5vw,2.15rem);line-height:1.1}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.portfolio-card{background:#0c0e1cad;border:1px solid #00f3ff1f;border-radius:4px;flex-direction:column;min-width:0;height:100%;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;overflow:hidden}.portfolio-card:hover{border-color:#00f3ff4d;transform:none;box-shadow:0 8px 24px #0000002e}.portfolio-card-placeholder{background:0 0;min-height:320px}.portfolio-preview{aspect-ratio:16/9;color:#00f3ffb3;background:radial-gradient(circle at 70% 20%,#ff4fd814,#0000 35%),radial-gradient(circle at 20% 80%,#00f3ff1a,#0000 40%),#050712b8;place-items:center;display:grid;position:relative;overflow:hidden}.portfolio-preview:after{content:"";pointer-events:none;background-image:linear-gradient(#00f3ff09 1px,#0000 1px),linear-gradient(90deg,#00f3ff09 1px,#0000 1px);background-size:20px 20px;position:absolute;inset:0}.portfolio-preview>i{z-index:1;font-size:2.15rem;transition:color .18s,transform .22s,text-shadow .18s;position:relative}.portfolio-card:hover .portfolio-preview>i{color:var(--secondary);text-shadow:0 0 6px #ff4fd82e;transform:scale(1.06)}.portfolio-preview-label{z-index:1;color:#e0e0ff47;letter-spacing:.12em;font-family:Courier New,monospace;font-size:.62rem;position:absolute;bottom:9px;right:12px}.portfolio-card-body{flex-direction:column;flex:1;padding:18px;display:flex}.portfolio-category{color:var(--primary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:.72rem;font-weight:600;display:block}.portfolio-card-title{color:var(--text);margin:0 0 9px;font-size:1.08rem;line-height:1.25;transition:color .18s}.portfolio-card:hover .portfolio-card-title{color:var(--secondary)}.portfolio-description{min-height:3.1em;color:var(--text-dim);flex:1;margin:0;font-size:.84rem;line-height:1.5}.portfolio-technologies{flex-wrap:wrap;gap:6px;min-height:26px;margin-top:13px;display:flex}.portfolio-technologies span{color:#e0e0ffa6;font-size:.7rem}.portfolio-technologies span:not(:last-child):after{content:"·";color:#00f3ff75;margin-left:6px}.portfolio-more{color:#e0e0ff6b;font:inherit;cursor:default;background:0 0;border:0;align-items:center;gap:7px;margin-top:17px;padding:0;font-size:.79rem;display:inline-flex}.portfolio-more i{font-size:.68rem}@media (width<=940px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.portfolio-page{width:min(100% - 24px,540px)}.portfolio-shell{padding-top:42px}.portfolio-header{margin-bottom:24px;padding-top:36px}.portfolio-home-link{top:0}.portfolio-grid{grid-template-columns:1fr;gap:18px}.portfolio-card-body{padding:16px}}.portfolio-preview-has-image{background:#050712e0}.portfolio-preview-has-image:after{display:none}.portfolio-preview-has-image>img{object-fit:contain;width:100%;height:100%;transition:transform .22s;display:block}.portfolio-card:hover .portfolio-preview-has-image>img{transform:scale(1.025)}.portfolio-more-link{color:var(--primary);cursor:pointer;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s}.portfolio-more-link:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd82e;transform:translate(2px)}.portfolio-more-link:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.portfolio-project{width:min(100%,900px);margin:0 auto}.portfolio-project-nav{justify-content:space-between;gap:18px;margin-bottom:34px;display:flex}.portfolio-project-nav-action{color:var(--text-dim);align-items:center;gap:7px;font-size:.86rem;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s;display:inline-flex}.portfolio-project-nav-action:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d;transform:translateY(-1px)}.portfolio-project-nav-action:focus-visible,.portfolio-github-link:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.portfolio-project-header{text-align:center}.portfolio-project-category{color:var(--primary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:9px;font-size:.76rem;font-weight:600;display:block}.portfolio-project-logo{width:min(320px,72vw);height:auto;margin:0 auto 18px;display:block}.portfolio-project-icon{width:64px;height:64px;color:var(--primary);text-shadow:0 0 6px #00f3ff2e;place-items:center;margin:0 auto 18px;font-size:2.8rem;display:grid}.portfolio-project-header h1{color:var(--text);margin:0;font-size:clamp(1.75rem,5vw,2.35rem);line-height:1.18}.portfolio-project-description{max-width:720px;color:var(--text-dim);margin:15px auto 0;font-size:1rem;line-height:1.6}.portfolio-project-technologies{color:var(--primary);flex-wrap:wrap;justify-content:center;gap:7px;margin-top:16px;font-size:.78rem;display:flex}.portfolio-project-technologies span:not(:last-child):after{content:"·";color:#00f3ff80;margin-left:7px}.portfolio-project-preview{background:#050712cc;border-radius:4px;margin:30px 0 0;overflow:hidden}.portfolio-project-preview img{width:100%;height:auto;display:block}.portfolio-project-content{padding-top:30px}.portfolio-github-link{color:var(--primary);align-items:center;gap:8px;margin-top:12px;font-size:.9rem;font-weight:600;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s;display:inline-flex}.portfolio-github-link:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd82e;transform:translate(2px)}@media (width<=620px){.portfolio-project-nav{margin-bottom:26px}.portfolio-project-preview{margin-top:24px}}.portfolio-project-content .portfolio-screenshot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 26px;display:grid}.portfolio-project-content .portfolio-screenshot-grid figure{min-width:0;margin:0}.portfolio-project-content .portfolio-screenshot-grid img{object-fit:contain;background:#050712b8;border-radius:4px;width:100%;height:270px;display:block}.portfolio-project-content .portfolio-screenshot-grid figcaption{color:var(--text-dim);text-align:center;margin-top:7px;font-size:.72rem;line-height:1.35}@media (width<=760px){.portfolio-project-content .portfolio-screenshot-grid{grid-template-columns:1fr;gap:20px}.portfolio-project-content .portfolio-screenshot-grid img{width:min(100%,520px);height:auto;max-height:520px;margin:0 auto}}.portfolio-project-content img.portfolio-lightbox-trigger{cursor:zoom-in}.portfolio-project-content img.portfolio-lightbox-trigger:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.portfolio-lightbox{background:#04050ef0;border:0;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:clamp(18px,4vw,40px);overflow:hidden}.portfolio-lightbox::backdrop{backdrop-filter:blur(3px);background:#000000c7}.portfolio-lightbox[open]{place-items:center;display:grid}.portfolio-lightbox-figure{flex-direction:column;align-items:center;gap:10px;max-width:min(1200px,100%);max-height:100%;margin:0;display:flex}.portfolio-lightbox-image{object-fit:contain;border-radius:4px;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 110px);display:block;box-shadow:0 0 22px #00f3ff1f}.portfolio-lightbox-caption{min-height:1.35em;color:var(--text-dim);text-align:center;font-size:.78rem;line-height:1.35}.portfolio-lightbox-close{z-index:2;width:38px;height:38px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;font-size:1.25rem;transition:color .18s,transform .18s,text-shadow .18s;display:grid;position:fixed;top:clamp(14px,3vw,28px);right:clamp(14px,3vw,28px)}.portfolio-lightbox-close:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d;transform:scale(1.06)}.portfolio-lightbox-close:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.resume-body-page{--resume-font-h1:2rem;--resume-font-h2:1.25rem;--resume-font-h3:1rem;--resume-font-h4:.9rem;--resume-font-h5:.8rem;--resume-font-h6:.75rem;--resume-font-body:.88rem;min-height:100vh;display:block}.resume-page{flex-direction:column;width:min(1080px,100% - 32px);min-height:100vh;margin:0 auto;display:flex}.resume-page .site-footer{flex:none;margin:34px auto 0}.resume-shell{flex:1;width:100%;padding:52px 0 24px}.resume-header{text-align:center;margin-bottom:32px;position:relative}.resume-home-link{color:var(--text-dim);font-size:var(--resume-font-h5);align-items:center;gap:7px;text-decoration:none;transition:color .18s,transform .18s,text-shadow .18s;display:inline-flex;position:absolute;top:8px;left:0}.resume-home-link:hover{color:var(--secondary);text-shadow:0 0 6px #ff4fd83d;transform:translateY(-1px)}.resume-home-link:focus-visible,.resume-contact-item:focus-visible,.resume-inline-link:focus-visible,.resume-featured-project:focus-visible,.resume-course a:focus-visible,.resume-experience summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.resume-heading{flex-direction:column;align-items:center;display:inline-flex}.resume-title{color:var(--primary);font-size:clamp(1.75rem, 5vw, var(--resume-font-h1));text-shadow:0 0 3px #00f3ff52;margin:0;line-height:1.1}.resume-profile-card,.resume-section{background:#0c0e1cad;border:1px solid #00f3ff1f;border-radius:4px}.resume-profile-card{grid-template-columns:210px minmax(0,1fr);align-items:center;gap:clamp(22px,4vw,40px);padding:clamp(18px,3vw,28px);display:grid;position:relative}.resume-hh-link{opacity:.82;background:#050510ad;border:1px solid #00f3ff38;border-radius:4px;place-items:center;width:40px;height:40px;transition:opacity .2s,border-color .2s,box-shadow .2s,transform .2s;display:grid;position:absolute;top:16px;right:16px}.resume-hh-link img{object-fit:contain;width:26px;height:26px;display:block}.resume-hh-link:hover{opacity:1;border-color:#00f3ffa6;transform:translateY(-1px);box-shadow:0 0 10px #00f3ff2e}.resume-hh-link:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.resume-photo-frame{aspect-ratio:1;background:#00000059;border:1px solid #00f3ff9e;overflow:hidden;box-shadow:0 0 8px #00f3ff2e,inset 0 0 8px #00f3ff0f}.resume-photo-frame img{object-fit:cover;width:100%;height:100%;display:block}.resume-profile-info{min-width:0}.resume-kicker{color:var(--secondary);font-size:var(--resume-font-h6);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-weight:700}.resume-profile-info h2{color:var(--text);font-size:clamp(1.55rem, 4vw, var(--resume-font-h1));margin:0;line-height:1.14}.resume-roles{color:var(--primary);font-size:var(--resume-font-h4);flex-wrap:wrap;gap:6px 14px;margin-top:10px;display:flex}.resume-roles span:not(:last-child):after{content:"·";color:#ff4fd8ad;margin-left:14px}.resume-contacts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:24px;display:grid}.resume-contact-item{min-width:0;color:var(--text-dim);align-items:center;gap:9px;font-size:.92rem;line-height:1.35;text-decoration:none;display:flex}.resume-contact-item i{width:18px;color:var(--primary);flex:none;place-items:center;font-size:.88rem;display:inline-grid}a.resume-contact-item:hover{color:var(--secondary)}.resume-section{margin-top:20px;padding:clamp(18px,3vw,24px)}.resume-section-heading,.resume-heading-group{align-items:center;gap:9px;display:flex}.resume-section-heading{margin-bottom:16px}.resume-section-heading>i,.resume-heading-group>i{width:20px;color:var(--secondary);place-items:center;font-size:.94rem;display:inline-grid}.resume-section-heading h2,.resume-heading-group h2{color:var(--primary);font-size:var(--resume-font-h2);text-transform:uppercase;letter-spacing:.035em;margin:0;line-height:1.2}.resume-about p,.resume-muted-copy{color:var(--text-dim);font-size:var(--resume-font-body);margin:0;line-height:1.65}.resume-experience-list{flex-direction:column;display:flex}.resume-experience{border-top:1px solid #00f3ff1a}.resume-experience:first-child{border-top:0}.resume-experience summary{cursor:pointer;user-select:none;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px;padding:15px 2px;list-style:none;display:grid}.resume-experience summary::-webkit-details-marker{display:none}.resume-experience summary::marker{content:""}.resume-experience-main{flex-direction:column;gap:4px;min-width:0;display:flex}.resume-experience-main strong{color:var(--text);font-size:var(--resume-font-h3);line-height:1.3;transition:color .18s}.resume-experience-city{color:var(--secondary);font-size:var(--resume-font-h5);line-height:1.3}.resume-experience-position{color:var(--text-dim);font-size:var(--resume-font-h4);line-height:1.4}.resume-experience-side{align-items:center;gap:10px;display:flex}.resume-experience .resume-period,.resume-course .resume-period{font-size:var(--resume-font-h5)}.resume-period{width:fit-content;color:var(--primary);font-family:Courier New,monospace;font-size:var(--resume-font-h5);white-space:nowrap;background:#00f3ff0e;border:1px solid #00f3ff33;border-radius:999px;padding:4px 8px;line-height:1.1}.resume-experience-side>i{width:16px;color:var(--text-dim);font-size:.68rem;transition:color .18s,transform .18s}.resume-experience summary:hover .resume-experience-main strong{color:var(--primary)}.resume-experience summary:hover .resume-experience-side>i{color:var(--secondary)}.resume-experience[open] .resume-experience-side>i{color:var(--primary);transform:rotate(180deg)}.resume-experience-details{padding:0 4px 16px}.resume-experience-details ul{color:var(--text-dim);font-size:var(--resume-font-body);margin:0;padding:0 0 0 18px;line-height:1.58}.resume-experience-details li{margin:5px 0;padding-left:4px}.resume-experience-details li::marker{color:var(--primary)}.resume-skill-tags{flex-wrap:wrap;gap:8px;display:flex}.resume-skill-tags span{color:#e0e0ffc7;font-size:var(--resume-font-h6);background:#00f3ff09;border:1px solid #00f3ff2e;border-radius:999px;padding:6px 9px;line-height:1}.resume-two-columns{grid-template-columns:.8fr 1.2fr;gap:20px;display:grid}.resume-two-columns .resume-section{height:calc(100% - 20px)}.resume-education,.resume-course{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.resume-education>div,.resume-course>div{flex-direction:column;gap:4px;min-width:0;display:flex}.resume-education strong,.resume-course strong{color:var(--text);font-size:var(--resume-font-h4);line-height:1.35}.resume-education span:not(.resume-period){color:var(--text-dim);font-size:var(--resume-font-h5)}.resume-education small{color:var(--secondary);font-size:var(--resume-font-h6)}.resume-courses-list{flex-direction:column;display:flex}.resume-course{border-top:1px solid #00f3ff14;padding:9px 0}.resume-course:first-child{border-top:0;padding-top:0}.resume-course:last-child{padding-bottom:0}.resume-course a{width:fit-content;color:var(--secondary);font-size:var(--resume-font-h6);text-decoration:none}.resume-course a:hover{color:var(--primary)}.resume-section-heading-with-action{justify-content:space-between;gap:18px}.resume-inline-link{color:var(--text-dim);font-size:var(--resume-font-h5);align-items:center;gap:7px;text-decoration:none;transition:color .18s,transform .18s;display:inline-flex}.resume-inline-link i{font-size:.68rem}.resume-inline-link:hover{color:var(--secondary);transform:translate(2px)}.resume-featured-project{color:inherit;border-top:1px solid #00f3ff1a;justify-content:space-between;align-items:flex-end;gap:24px;padding:15px 0 2px;text-decoration:none;display:flex}.resume-featured-project>div:first-child{min-width:0}.resume-project-category{color:var(--primary);font-size:var(--resume-font-h6);letter-spacing:.055em;text-transform:uppercase;margin-bottom:5px;font-weight:600;display:block}.resume-featured-project strong{color:var(--text);font-size:var(--resume-font-h3);line-height:1.35;transition:color .18s;display:block}.resume-featured-project p{max-width:700px;color:var(--text-dim);font-size:var(--resume-font-body);margin:7px 0 0;line-height:1.5}.resume-project-tech{color:var(--primary);font-size:var(--resume-font-h6);white-space:nowrap;flex:none}.resume-featured-project:hover strong{color:var(--secondary)}.resume-bottom-grid{grid-template-columns:.9fr 1.1fr}.resume-secondary-tags{margin-top:15px}.resume-hobby-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.resume-hobby-list li{color:var(--text-dim);font-size:var(--resume-font-body);padding-left:15px;line-height:1.45;position:relative}.resume-hobby-list li:before{content:"›";color:var(--secondary);position:absolute;left:0}@media (width<=760px){.resume-page{width:min(100% - 24px,620px)}.resume-shell{padding-top:42px}.resume-header{margin-bottom:24px;padding-top:36px}.resume-home-link{top:0}.resume-profile-card{text-align:center;grid-template-columns:1fr}.resume-photo-frame{width:min(210px,70vw);margin:0 auto}.resume-roles,.resume-contacts{justify-content:center}.resume-roles span:not(:last-child):after{display:none}.resume-contacts{grid-template-columns:1fr}.resume-contact-item{justify-content:center}.resume-two-columns,.resume-bottom-grid{grid-template-columns:1fr;gap:0}.resume-two-columns .resume-section{height:auto}.resume-featured-project{flex-direction:column;align-items:flex-start;gap:10px}}@media (width<=560px){.resume-section,.resume-profile-card{padding:16px}.resume-hh-link{width:36px;height:36px;top:12px;right:12px}.resume-hh-link img{width:23px;height:23px}.resume-experience summary{grid-template-columns:1fr;gap:10px}.resume-experience-side{justify-content:space-between}.resume-section-heading-with-action{flex-direction:column;align-items:flex-start;gap:8px}.resume-education,.resume-course{align-items:flex-start}}@media (width<=360px){.resume-hh-link{width:30px;height:30px;top:8px;right:8px}.resume-hh-link img{width:20px;height:20px}}
