@font-face{font-family:Queensides;src:url(/font/Queensides.woff2) format("woff2"),url(/font/Queensides.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Queensides;src:url(/font/Queensides-Medium.woff2) format("woff2"),url(/font/Queensides-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Queensides;src:url(/font/Queensides-Light.woff2) format("woff2"),url(/font/Queensides-Light.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}*{margin:0;padding:0;box-sizing:border-box;font-family:Queensides-Medium,system-ui,Avenir,Helvetica,Arial,sans-serif}:root{font-family:Queensides-Medium,system-ui,Avenir,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--modal-bg: #282727ef;--modal-surface: #232323;--modal-border: rgba(255, 255, 255, .3);--modal-text: #ffffff;--modal-text-muted: rgb(225, 225, 225);--modal-accent: #f6bd6f;--modal-tag-bg: rgba(200, 164, 114, .156);--modal-tag-border: rgba(200, 169, 126, .086)}.loading-screen{position:fixed;inset:0;z-index:99999;background:#1d1d1d;display:flex;align-items:center;justify-content:center}.loader-content{display:flex;flex-direction:column;align-items:center;gap:10px;width:200px}.loader-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--modal-text-muted)}.loader-bar-track{width:100%;height:1px;background:#ffffff14;border-radius:1px;overflow:hidden}.loader-bar-fill{height:100%;width:0%;background:#c8a97e;border-radius:1px;transition:width .15s ease}.loader-percent{font-size:10px;letter-spacing:.1em;color:var(--modal-text-muted);align-self:flex-end}#intro{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;background:#0a0a0a8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:opacity .6s ease}#intro.is-hidden{opacity:0;pointer-events:none}.intro-content{display:flex;flex-direction:column;align-items:center;gap:36px;text-align:center}.intro-text{display:flex;flex-direction:column;gap:16px}.intro-name{font-size:52px;font-weight:600;color:var(--modal-text);letter-spacing:.03em}.intro-desc{font-size:16px;letter-spacing:.2em;text-transform:uppercase;color:var(--modal-text-muted)}.intro-instr{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#ffffffb9}.intro-dot{color:#ffffffb9}.intro-enter-button{background:none;border:2px solid rgba(255,255,255,.15);color:var(--modal-text-muted);font-family:inherit;font-size:16px;letter-spacing:.15em;text-transform:uppercase;padding:10px 28px;border-radius:2px;cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease;margin-top:8px}.intro-enter-button:hover{color:var(--modal-text);border-color:#ffffff4d;background:#ffffff0a}#main-nav{position:fixed;top:20px;right:20px;z-index:9997;display:flex;align-items:center;gap:3px;background:#0a0a0a8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.07);border-radius:2px;padding:6px;opacity:0;pointer-events:none;transition:opacity .5s ease}#main-nav.is-visible{opacity:1;pointer-events:all}.nav-btn{background:none;border:none;color:#ffffff59;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:2px;cursor:pointer;transition:color .2s ease,background .2s ease}.nav-btn svg{width:18px;height:18px;flex-shrink:0}.nav-btn:hover{color:#ffffffd9;background:#ffffff0f}.nav-btn.is-active{color:var(--modal-accent)}.nav-divider{width:1px;height:16px;background:#ffffff12;margin:0 2px}#main-nav .icon-sun{display:none}#main-nav .icon-moon,#main-nav.is-night .icon-sun{display:block}#main-nav.is-night .icon-moon{display:none}#experience{position:fixed;height:100%;width:100%;top:0;left:0;overflow:hidden}#experience #experience-canvas{height:100%;width:100%}.modal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:1200px;width:100%;max-height:96vh;z-index:9999;display:none;background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:2px;box-shadow:0 40px 100px #000000b3,0 0 0 1px #ffffff08;overflow:hidden;flex-direction:column}.modal.is-visible{display:flex}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 18px;border-bottom:1px solid var(--modal-border);flex-shrink:0}.modal-header-left{display:flex;align-items:baseline;gap:12px}.modal-title{font-size:20px;font-weight:500;letter-spacing:.01em;color:var(--modal-text)}.modal-count{font-size:10px;color:var(--modal-text-muted);letter-spacing:.12em;text-transform:uppercase}.modal-exit-button{background:none;border:1px solid var(--modal-border);color:var(--modal-text-muted);font-family:inherit;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:7px 14px;border-radius:2px;cursor:pointer;transition:color .2s ease,border-color .2s ease,background .2s ease}.modal-exit-button h3{font-size:inherit;font-weight:inherit}.modal-exit-button:hover{color:var(--modal-text);border-color:#fff3;background:#ffffff0a}.about.modal,.contact.modal{max-width:800px}.contact-links{display:flex;flex-direction:column;gap:4px;padding:4px 0}.contact-link{display:flex;align-items:center;gap:14px;padding:14px 12px;border:1px solid var(--modal-border);border-radius:2px;color:var(--modal-text-muted);text-decoration:none;transition:color .2s ease,border-color .2s ease,background .2s ease}.contact-link svg{width:16px;height:16px;flex-shrink:0;transition:transform .2s ease}.contact-link span{font-size:11px;letter-spacing:.1em;text-transform:uppercase}.contact-link:hover{color:var(--modal-text);border-color:#fff3;background:#ffffff08}.contact-link:hover svg{transform:scale(1.1)}.modal-text{text-indent:2em;font-size:15px;font-weight:400;color:var(--modal-text-muted);letter-spacing:.02em;line-height:1.8}.modal-body{overflow-y:auto;padding:24px 26px 26px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent}.modal-body::-webkit-scrollbar{width:4px}.modal-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.modal-back-button{background:none;border:none;color:var(--modal-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s ease}.modal-back-button:hover{color:var(--modal-text)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(max-width:600px){.projects-grid{grid-template-columns:1fr}}.project-card-grid{border:1px solid var(--modal-border);border-radius:5px;overflow:hidden;cursor:pointer;transition:border-color .2s ease,transform .2s ease;background:var(--modal-surface)}.project-card-grid:hover{border-color:#ffffff40;transform:translateY(-2px)}.project-card-image{width:100%;aspect-ratio:16/9;overflow:hidden}.project-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.project-card-grid:hover .project-card-image img{transform:scale(1.03)}.project-card-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.project-date{font-size:12px;color:#ffffffc9;letter-spacing:.06em;white-space:nowrap;flex-shrink:0}.project-card-footer{padding:15px;display:flex;flex-direction:column;gap:10px}.project-tags{display:flex;flex-wrap:wrap;gap:12px}.tag{background:var(--modal-tag-bg);border:1px solid var(--modal-tag-border);color:var(--modal-accent);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:1px}.project-name{font-size:15px;font-weight:500;color:var(--modal-text);letter-spacing:.02em}.project-detail{display:none;flex-direction:column;gap:28px;padding:0 12px}.project-detail.is-active{display:flex}.project-detail-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.project-detail-title{font-size:24px;font-weight:500;color:var(--modal-text);letter-spacing:.02em}.project-detail-date{font-size:15px;color:#ffffffcb;letter-spacing:.06em;white-space:nowrap;flex-shrink:0}.project-detail-top{display:flex;flex-direction:column;gap:8px}.project-detail-image{display:flex;gap:8px;border-radius:4px;overflow:hidden}.project-detail-image img{flex:1;min-width:0;width:0;display:block;object-fit:cover;height:auto}.project-detail-image img+img,.project-detail-image img:not(:only-child){max-height:500px}.project-detail-body{display:flex;flex-direction:column;gap:18px;padding:0 4px}.project-detail-section{display:flex;flex-direction:column;gap:8px;padding-bottom:18px;border-bottom:1px solid var(--modal-border)}.project-detail-section:last-child{border-bottom:none;padding-bottom:0}.project-detail-section-title{font-size:16px;letter-spacing:.15em;text-transform:uppercase;color:var(--modal-accent);font-weight:500}.project-detail-text{font-size:16px;line-height:1.85;color:var(--modal-text-muted);font-weight:300}.project-github-link{display:inline-flex;align-items:center;gap:7px;color:var(--modal-text-muted);text-decoration:none;font-size:12px;letter-spacing:.1em;text-transform:uppercase;width:fit-content;transition:color .2s ease}.project-github-link svg{width:18px;height:18px;flex-shrink:0;transition:transform .2s ease}.project-github-link:after{content:"GitHub"}.project-github-link:hover{color:var(--modal-text)}.project-github-link:hover svg{transform:scale(1.15)}
