.annotationLayer{--annotation-unfocused-field-background:url("data:image/svg+xml;charset=utf-8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1\" height=\"1\"><rect width=\"100%\" height=\"100%\" style=\"fill:rgba(0,54,255,.13)\"/></svg>");--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:transparent;--input-disabled-border-color:transparent;--input-hover-border-color:#000;--link-outline:none}@media screen and (forced-colors:active){.annotationLayer{--input-focus-border-color:CanvasText;--input-unfocused-border-color:ActiveText;--input-disabled-border-color:GrayText;--input-hover-border-color:Highlight;--link-outline:1.5px solid LinkText}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid selecteditem}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.annotationLayer .popupAnnotation .popup{color:buttontext!important;outline:calc(1.5px*var(--scale-factor)) solid CanvasText!important;background-color:buttonface!important}.annotationLayer .highlightArea:hover:after{-webkit-backdrop-filter:var(--hcm-highlight-filter);backdrop-filter:var(--hcm-highlight-filter);content:"";pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .popupAnnotation.focused .popup{outline:calc(3px*var(--scale-factor)) solid Highlight!important}}.annotationLayer{pointer-events:none;transform-origin:0 0;position:absolute;top:0;left:0}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg)translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg)translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg)translateY(-100%)}.annotationLayer.disabled .popup,.annotationLayer.disabled section{pointer-events:none}.annotationLayer .annotationContent{pointer-events:none;width:100%;height:100%;position:absolute}.annotationLayer section{box-sizing:border-box;pointer-events:auto;text-align:initial;transform-origin:0 0;position:absolute}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{width:100%;height:100%;font-size:1em;position:absolute;top:0;left:0}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton):not(.hasBorder)>a:hover{opacity:.2;background-color:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .linkAnnotation.hasBorder:hover{background-color:#ff03}.annotationLayer .hasBorder{background-size:100% 100%}.annotationLayer .textAnnotation img{cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation :is(input,textarea){background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px*var(--scale-factor)) sans-serif;vertical-align:top;width:100%;height:100%;margin:0}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation [disabled]:is(input,textarea){border:2px solid var(--input-disabled-border-color);cursor:not-allowed;background:0 0}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border-radius:2px}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation :is(input,textarea):focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);background:0 0;border-radius:2px}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:#0000;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline);border-radius:2px}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{content:"";background-color:canvastext;display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{width:1px;height:80%;left:45%}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;width:50%;height:50%;top:25%;left:25%}.annotationLayer .textWidgetAnnotation input.comb{padding-left:2px;padding-right:0;font-family:monospace}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{appearance:none}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{width:100%;height:100%}.annotationLayer .popupAnnotation{font-size:calc(9px*var(--scale-factor));pointer-events:none;width:max-content;max-width:45%;height:auto;position:absolute}.annotationLayer .popup{border-radius:calc(2px*var(--scale-factor));box-shadow:0 calc(2px*var(--scale-factor)) calc(5px*var(--scale-factor)) #888;cursor:pointer;font:message-box;padding:calc(6px*var(--scale-factor));white-space:normal;word-wrap:break-word;pointer-events:auto;background-color:#ff9;outline:1.5px solid #ffff4a}.annotationLayer .popupAnnotation.focused .popup{outline-width:3px}.annotationLayer .popup *{font-size:calc(9px*var(--scale-factor))}.annotationLayer .popup>.header{display:inline-block}.annotationLayer .popup>.header h1{display:inline}.annotationLayer .popup>.header .popupDate{margin-left:calc(5px*var(--scale-factor));width:fit-content;display:inline-block}.annotationLayer .popupContent{margin-top:calc(2px*var(--scale-factor));padding-top:calc(2px*var(--scale-factor));border-top:1px solid #333}.annotationLayer .richText>*{font-size:calc(9px*var(--scale-factor));white-space:pre-wrap}.annotationLayer .popupTriggerArea{cursor:pointer}.annotationLayer section svg{width:100%;height:100%;position:absolute;top:0;left:0}.annotationLayer .annotationTextContent{color:#0000;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.annotationLayer svg.quadrilateralsContainer{contain:strict;z-index:-1;width:0;height:0;position:absolute;top:0;left:0}.textLayer{opacity:1;text-align:initial;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;caret-color:canvastext;forced-color-adjust:none;transform-origin:0 0;z-index:0;line-height:1;position:absolute;inset:0;overflow:clip}.textLayer.highlighting{touch-action:none}.textLayer :is(span,br){color:#0000;cursor:text;transform-origin:0 0;white-space:pre;position:absolute}.textLayer .markedContent span:not(.markedContent),.textLayer>:not(.markedContent){z-index:1}.textLayer span.markedContent{height:0;top:0}.textLayer span[role=img]{cursor:default;-webkit-user-select:none;user-select:none}.textLayer .highlight{--highlight-bg-color:#b400aa40;--highlight-selected-bg-color:#00640040;--highlight-backdrop-filter:none;--highlight-selected-backdrop-filter:none}@media screen and (forced-colors:active){.textLayer .highlight{--highlight-bg-color:transparent;--highlight-selected-bg-color:transparent;--highlight-backdrop-filter:var(--hcm-highlight-filter);--highlight-selected-backdrop-filter:var(--hcm-highlight-selected-filter)}}.textLayer .highlight{-webkit-backdrop-filter:var(--highlight-backdrop-filter);backdrop-filter:var(--highlight-backdrop-filter);background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer ::selection{background:#0000ff40;background:color-mix(in srgb,AccentColor,transparent 75%)}.textLayer br::selection{background:0 0}.textLayer .endOfContent{cursor:default;-webkit-user-select:none;user-select:none;z-index:0;display:block;position:absolute;inset:100% 0 0}.textLayer.selecting .endOfContent{top:0}.textLayer.selecting~.annotationLayer section{pointer-events:none}.textLayer.highlighting{cursor:var(--editorFreeHighlight-editing-cursor)}.textLayer.highlighting:not(.free) span{cursor:var(--editorHighlight-editing-cursor)}.textLayer.highlighting.free span{cursor:var(--editorFreeHighlight-editing-cursor)}[data-main-rotation="90"]{transform:rotate(90deg)translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg)translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg)translate(-100%)}#hiddenCopyElement,.hiddenCanvasElement{width:0;height:0;display:none;position:absolute;top:0;left:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--bg2:#111;--bg3:#181818;--surface:#1e1e1e;--border:#2a2a2a;--border2:#333;--accent:#a8ff78;--accent2:#78ffd6;--text:#f0f0f0;--text2:#888;--text3:#555}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);cursor:none;font-family:Manrope,sans-serif;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit}#app{min-height:100vh}.site-notice{color:#ffb3b3;letter-spacing:.04em;background:#ff78780d;border:1px solid #ff787859;border-radius:12px;margin:140px 60px 0;padding:14px 18px;font-size:13px}.route-loader{z-index:9999;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0}.route-loader:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent2));width:0;height:100%;transition:width .25s;display:block}.route-loader.active:after{width:100%;animation:1.3s ease-in-out infinite routeLoad}@keyframes routeLoad{0%{transform:translate(-35%)}50%{transform:translate(0)}to{transform:translate(35%)}}.cursor{background:var(--accent);pointer-events:none;z-index:9999;border-radius:50%;width:8px;height:8px;transition:transform .1s;position:fixed;transform:translate(-50%,-50%)}.cursor-ring{pointer-events:none;z-index:9998;border:1px solid #a8ff7866;border-radius:50%;width:36px;height:36px;transition:width .2s,height .2s,border-color .2s;position:fixed;transform:translate(-50%,-50%)}.cursor-ring.expand{border-color:#a8ff7826;width:60px;height:60px}.main-nav{z-index:100;justify-content:space-between;align-items:center;padding:20px 60px;display:flex;position:fixed;top:0;left:0;right:0}.main-nav:before{content:"";-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:-1;background:#0a0a0ad9;position:absolute;inset:0}.nav-logo{color:var(--text);font-family:Syne,sans-serif;font-size:17px;font-weight:700}.nav-logo span{color:var(--accent)}.nav-links{gap:36px;list-style:none;display:flex}.nav-links a{letter-spacing:.1em;text-transform:uppercase;color:var(--text2);font-size:12px;font-weight:500;text-decoration:none;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--accent)}.nav-cta{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);border-radius:100px;padding:10px 24px;font-size:12px;font-weight:500;text-decoration:none;transition:background .2s,color .2s}.nav-cta:hover{background:var(--accent);color:#000}.hero{flex-direction:column;justify-content:flex-end;min-height:100vh;padding:0 60px 80px;display:flex;position:relative;overflow:hidden}.hero-grid{pointer-events:none;background-image:linear-gradient(#a8ff7808 1px,#0000 1px),linear-gradient(90deg,#a8ff7808 1px,#0000 1px);background-size:80px 80px;position:absolute;inset:0}.hero-glow{pointer-events:none;background:radial-gradient(circle,#a8ff7812 0%,#0000 70%);border-radius:50%;width:700px;height:700px;animation:6s ease-in-out infinite glowPulse;position:absolute;top:-150px;right:-150px}@keyframes glowPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.hero-content{z-index:1;position:relative}.hero-tag{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);opacity:0;align-items:center;gap:10px;margin-bottom:28px;font-size:11px;font-weight:500;animation:.8s .2s forwards fadeUp;display:inline-flex}.hero-tag:before{content:"";background:var(--accent);width:28px;height:1px}.hero-name{letter-spacing:-.03em;opacity:0;margin-bottom:0;font-family:Syne,sans-serif;font-size:clamp(60px,9vw,130px);font-weight:800;line-height:.88;animation:.8s .35s forwards fadeUp}.hero-name .outline{-webkit-text-stroke:1px #a8ff7873;color:#0000}.hero-bottom{border-top:1px solid var(--border);opacity:0;justify-content:space-between;align-items:flex-end;margin-top:52px;padding-top:36px;animation:.8s .55s forwards fadeUp;display:flex}.hero-desc{color:var(--text2);max-width:400px;font-size:15px;font-weight:300;line-height:1.8}.hero-desc strong{color:var(--text);font-weight:500}.hero-stats{gap:48px;display:flex}.hstat{text-align:right}.hstat-num{color:var(--accent);font-family:Syne,sans-serif;font-size:36px;font-weight:700;line-height:1}.hstat-label{color:var(--text3);letter-spacing:.06em;margin-top:5px;font-size:11px}.hero-scroll{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);opacity:0;align-items:center;gap:12px;margin-top:40px;font-size:11px;animation:.8s .7s forwards fadeUp;display:flex}.scroll-line{background:var(--border2);width:60px;height:1px;position:relative;overflow:hidden}.scroll-line:after{content:"";background:var(--accent);width:100%;height:100%;animation:2s ease-in-out 1s infinite scrollAnim;position:absolute;top:0;left:-100%}@keyframes scrollAnim{to{left:100%}}@keyframes fadeUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}section{padding:120px 60px}.s-label{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;margin-bottom:14px;font-size:11px;font-weight:500;display:flex}.s-label:before{content:"";background:var(--accent);width:20px;height:1px}.s-title{letter-spacing:-.025em;color:var(--text);margin-bottom:64px;font-family:Syne,sans-serif;font-size:clamp(38px,5vw,68px);font-weight:700;line-height:1}.about{background:var(--bg2)}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}.about-text{color:var(--text2);font-size:16px;font-weight:300;line-height:1.95}.about-text p+p{margin-top:20px}.about-text strong{color:var(--text);font-weight:500}.about-cards{background:var(--border);flex-direction:column;gap:1px;display:flex}.acard{background:var(--bg2);padding:24px 28px;transition:background .25s}.acard:hover{background:var(--surface)}.acard-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:8px;font-size:10px}.acard-value{color:var(--text);font-size:15px;font-weight:400;line-height:1.5}.experience{background:var(--bg)}.exp-item{border-bottom:1px solid var(--border);cursor:default;grid-template-columns:240px 1fr auto;align-items:start;gap:40px;padding:40px 0;transition:background .25s;display:grid}.exp-item:first-child{border-top:1px solid var(--border)}.exp-item:hover{background:#ffffff03}.exp-item:hover .exp-arrow{opacity:1;transform:translate(0)}.exp-date{color:var(--text3);margin-bottom:8px;font-size:12px}.exp-org{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:11px;font-weight:600}.exp-title{color:var(--text);margin-bottom:12px;font-family:Syne,sans-serif;font-size:22px;font-weight:600}.exp-desc{color:var(--text2);max-width:580px;font-size:14px;font-weight:300;line-height:1.85}.exp-tags{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.exp-tag{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--border2);color:var(--text3);border-radius:100px;padding:5px 14px;font-size:10px;font-weight:500;transition:all .2s}.exp-item:hover .exp-tag{color:#a8ff78b3;border-color:#a8ff784d}.exp-arrow{opacity:0;color:var(--accent);padding-top:2px;font-size:20px;transition:all .3s;transform:translate(-10px)}.research{background:var(--bg2)}.pub-card{border:1px solid var(--border2);border-radius:20px;padding:60px;transition:border-color .3s;position:relative;overflow:hidden}.pub-card:hover{border-color:#a8ff7859}.pub-card:before{content:"";pointer-events:none;background:radial-gradient(at 0 0,#a8ff780a 0%,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.pub-card:hover:before{opacity:2}.pub-bg-num{color:#a8ff7808;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Syne,sans-serif;font-size:180px;font-weight:800;line-height:1;position:absolute;bottom:-40px;right:40px}.pub-label{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;font-size:10px;font-weight:600}.pub-title{color:var(--text);max-width:680px;margin-bottom:24px;font-family:Syne,sans-serif;font-size:clamp(20px,3vw,30px);font-weight:600;line-height:1.35}.pub-desc{color:var(--text2);max-width:640px;font-size:14px;font-weight:300;line-height:1.85}.pub-footer{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;margin-top:36px;padding-top:32px;display:flex}.pub-author{color:var(--text3);margin-right:8px;font-size:13px}.pub-pill{letter-spacing:.06em;color:var(--accent);background:#a8ff7814;border:1px solid #a8ff782e;border-radius:100px;padding:6px 16px;font-size:11px;font-weight:500}.education{background:var(--bg2)}.edu-timeline{padding-left:32px;position:relative}.edu-timeline:before{content:"";background:var(--border2);width:1px;position:absolute;top:8px;bottom:8px;left:0}.edu-item{padding:0 0 52px 40px;position:relative}.edu-item:last-child{padding-bottom:0}.edu-item:before{content:"";background:var(--bg2);border:1px solid var(--border2);border-radius:50%;width:11px;height:11px;transition:border-color .3s,background .3s;position:absolute;top:8px;left:-5px}.edu-item:hover:before{border-color:var(--accent);background:var(--accent)}.edu-period{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:8px;font-size:11px}.edu-degree{color:var(--text);margin-bottom:6px;font-family:Syne,sans-serif;font-size:20px;font-weight:600;line-height:1.3}.edu-institution{color:var(--accent);letter-spacing:.04em;margin-bottom:8px;font-size:13px;font-weight:500}.edu-meta{color:var(--text2);margin-bottom:12px;font-size:13px;line-height:1.7}.edu-links{flex-wrap:wrap;gap:10px;display:flex}.edu-link{letter-spacing:.08em;text-transform:uppercase;color:var(--text3);border:1px solid var(--border2);border-radius:100px;align-items:center;gap:6px;padding:5px 14px;font-size:11px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.edu-link:hover{border-color:var(--accent);color:var(--accent)}.edu-link svg{flex-shrink:0;width:12px;height:12px}.projects{background:var(--bg)}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.proj-card{border:1px solid var(--border2);cursor:default;border-radius:16px;padding:36px 32px;transition:border-color .3s,background .3s;position:relative;overflow:hidden}.proj-card:hover{background:#a8ff7805;border-color:#a8ff7859}.proj-card:before{content:"";opacity:0;pointer-events:none;background:radial-gradient(at 0 0,#a8ff780a 0%,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.proj-card:hover:before{opacity:1}.proj-skeleton{background:linear-gradient(120deg,#ffffff08,#ffffff14,#ffffff08);min-height:220px;animation:1.4s ease-in-out infinite skeletonPulse}.proj-date{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:14px;font-size:10px}.proj-title{color:var(--text);margin-bottom:12px;font-family:Syne,sans-serif;font-size:20px;font-weight:600;line-height:1.3}.proj-desc{color:var(--text2);margin-bottom:20px;font-size:13px;font-weight:300;line-height:1.8}.proj-tech{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.proj-tech span{letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--border2);color:var(--text3);border-radius:100px;padding:4px 12px;font-size:10px;font-weight:500}.proj-link{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;font-size:12px;font-weight:500;text-decoration:none;transition:gap .2s;display:inline-flex}.proj-link:hover{gap:12px}.project-detail{padding:160px 60px 100px}.project-header{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);align-items:start;gap:40px;margin-bottom:48px;display:grid}.project-main{flex-direction:column;gap:16px;display:flex}.project-meta{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-size:12px}.project-title{writing-mode:horizontal-tb;margin-bottom:0;font-family:Syne,sans-serif;font-size:clamp(34px,6vw,64px);font-weight:700;line-height:1.05;transform:none}.project-lead{color:var(--text2);max-width:720px;font-size:16px;font-weight:300;line-height:1.85}.project-actions{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.project-aside{flex-direction:column;gap:16px;display:flex}.project-card{border:1px solid var(--border2);background:var(--bg2);border-radius:18px;padding:20px}.project-card-title{letter-spacing:.14em;text-transform:uppercase;color:var(--text3);margin-bottom:16px;font-size:10px}.project-logo{border:1px solid var(--border);background:var(--bg3);border-radius:20px;justify-content:center;align-items:center;width:160px;height:160px;margin:0 auto;display:flex;overflow:hidden}.project-placeholder{color:var(--text3);letter-spacing:.06em;text-transform:uppercase;font-size:12px}.project-info{gap:12px;display:grid}.project-info-row{text-transform:uppercase;letter-spacing:.1em;color:var(--text3);justify-content:space-between;font-size:12px;display:flex}.project-info-row strong{color:var(--text);font-weight:600}.project-section{margin-bottom:32px}.project-section-title{color:var(--text);margin-bottom:12px;font-family:Syne,sans-serif;font-size:20px;font-weight:600}.project-description{color:var(--text2);font-size:15px;font-weight:300;line-height:1.9}.project-description p+p{margin-top:18px}.project-description a{color:var(--accent);text-decoration:none}.project-description h3{color:var(--text);margin:24px 0 12px;font-family:Syne,sans-serif;font-size:22px}.project-description ul{margin-top:12px;padding-left:18px}.project-gallery{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:32px;display:grid}.project-gallery img{border:1px solid var(--border);border-radius:14px}.project-back{align-items:center;gap:10px;margin-bottom:24px;display:inline-flex}.section-cta{justify-content:center;margin-top:-20px;display:flex}.section-cta .proj-link{border:1px solid var(--border2);background:0 0;border-radius:999px;padding:10px 18px}.section-cta .proj-link:hover{border-color:var(--accent)}.cad-portfolio{background:var(--bg)}.cad-grid{columns:3 280px;column-gap:24px}.cad-card{border:1px solid var(--border2);background:var(--bg2);width:100%;color:inherit;border-radius:18px;margin:0 0 24px;text-decoration:none;transition:transform .25s,border-color .25s,background .25s;display:inline-block;overflow:hidden}.cad-card:hover{background:#a8ff7805;border-color:#a8ff7859;transform:translateY(-3px)}.cad-thumb{background:var(--bg3);justify-content:center;align-items:center;min-height:180px;display:flex;position:relative;overflow:hidden}.cad-thumb img{object-fit:cover;width:100%;height:100%}.cad-pdf-thumb{width:100%;display:block}.cad-thumb-placeholder{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-size:11px}.cad-pdf-badge{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border2);color:var(--text);background:#0000008c;border-radius:100px;padding:4px 10px;font-size:10px;position:absolute;top:12px;right:12px}.cad-body{flex-direction:column;gap:10px;padding:20px;display:flex}.cad-title{color:var(--text);font-family:Syne,sans-serif;font-size:18px;font-weight:600}.cad-meta{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-size:11px}.cad-software{flex-wrap:wrap;gap:8px;display:flex}.cad-software span{text-transform:uppercase;letter-spacing:.07em;border:1px solid var(--border2);color:var(--text3);border-radius:100px;padding:4px 12px;font-size:10px}.cad-empty{border:1px dashed var(--border2);text-align:center;color:var(--text3);border-radius:18px;padding:40px;font-size:14px}.cad-skeleton{background:linear-gradient(120deg,#ffffff08,#ffffff14,#ffffff08);min-height:320px;animation:1.4s ease-in-out infinite skeletonPulse}.cad-detail{padding:160px 60px 100px}.cad-detail-header{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr);align-items:start;gap:40px;margin-bottom:40px;display:grid}.cad-detail-main{flex-direction:column;gap:14px;display:flex}.cad-date{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-size:12px}.cad-detail .cad-title{font-size:clamp(32px,6vw,64px);line-height:1.05}.cad-actions{flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.cad-info-card{border:1px solid var(--border2);background:var(--bg2);border-radius:18px;gap:12px;padding:20px;display:grid}.cad-info-title{letter-spacing:.14em;text-transform:uppercase;color:var(--text3);font-size:10px}.cad-info-row{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);justify-content:space-between;font-size:12px;display:flex}.cad-info-row strong{color:var(--text);font-weight:600}.cad-section{margin-bottom:32px}.cad-section-title{color:var(--text);margin-bottom:12px;font-family:Syne,sans-serif;font-size:20px;font-weight:600}.cad-description{color:var(--text2);font-size:15px;font-weight:300;line-height:1.9}.cad-description p+p{margin-top:16px}.cad-gallery{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.cad-gallery-item{border:1px solid var(--border2);background:var(--bg3);cursor:pointer;border-radius:14px;overflow:hidden}.cad-gallery-item img{object-fit:cover;width:100%;height:100%}.cad-toggle{border:1px solid var(--border2);background:var(--bg3);color:var(--text);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:100px;padding:10px 16px;font-size:12px}.cad-pdf-viewer{border:1px solid var(--border2);background:var(--bg2);border-radius:18px;margin-top:16px;padding:16px}.cad-pdf-toolbar{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.cad-pdf-select{flex-wrap:wrap;gap:8px;display:flex}.cad-pdf-button{border:1px solid var(--border2);background:var(--bg3);color:var(--text2);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;border-radius:100px;padding:8px 14px;font-size:11px}.cad-pdf-button.active{border-color:var(--accent);color:var(--accent)}.cad-pdf-controls{color:var(--text3);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.cad-pdf-control{border:1px solid var(--border2);color:var(--text);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:100px;padding:6px 12px;font-size:11px}.cad-pdf-canvas{width:100%}.cad-error{color:#ffb3b3;margin-bottom:12px;font-size:12px}.cad-downloads{flex-wrap:wrap;gap:12px;display:flex}.cad-lightbox{z-index:9998;background:#050505eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cad-lightbox img{border:1px solid var(--border2);border-radius:16px;max-width:86vw;max-height:86vh}.cad-lightbox-close{border:1px solid var(--border2);color:var(--text);cursor:pointer;background:0 0;border-radius:50%;width:36px;height:36px;font-size:18px;position:absolute;top:32px;right:32px}.cad-lightbox-nav{border:1px solid var(--border2);color:var(--text);cursor:pointer;background:#0000008c;border-radius:100px;padding:8px 14px;position:absolute;top:50%;transform:translateY(-50%)}.cad-lightbox-nav.prev{left:32px}.cad-lightbox-nav.next{right:32px}@keyframes skeletonPulse{0%,to{opacity:.6}50%{opacity:1}}@media (width<=1024px){.project-header{grid-template-columns:1fr}.project-aside{flex-flow:wrap}.project-card{flex:240px}.project-logo{width:140px;height:140px}.reco-grid{grid-template-columns:repeat(2,1fr)}.reco-card.featured{grid-column:span 2}}@media (width<=768px){.projects-grid,.project-gallery{grid-template-columns:1fr}.project-aside{flex-direction:column}}.skills{background:var(--bg)}.skills-layout{grid-template-columns:1fr 2fr;align-items:start;gap:80px;display:grid}.skills-intro{color:var(--text2);font-size:16px;font-weight:300;line-height:1.85;position:sticky;top:120px}.skills-groups{flex-direction:column;gap:40px;display:flex}.sg-title{letter-spacing:.14em;text-transform:uppercase;color:var(--text3);border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:12px;font-size:10px;font-weight:600}.sg-items{flex-wrap:wrap;gap:10px;display:flex}.sg-item{color:var(--text);border:1px solid var(--border2);cursor:default;border-radius:100px;padding:10px 20px;font-size:13px;font-weight:400;transition:all .25s;position:relative;overflow:hidden}.sg-item:before{content:"";background:var(--accent);transform-origin:0;z-index:-1;transition:transform .3s;position:absolute;inset:0;transform:scaleX(0)}.sg-item:hover{border-color:var(--accent);color:#000}.sg-item:hover:before{transform:scaleX(1)}.awards{background:var(--bg2)}.awards-grid{background:var(--border);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.award-card{background:var(--bg2);padding:40px 32px;transition:background .25s;position:relative;overflow:hidden}.award-card:hover{background:var(--surface)}.award-card:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent2));transform-origin:0;height:2px;transition:transform .35s;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.award-card:hover:after{transform:scaleX(1)}.award-num{color:#a8ff780f;margin-bottom:20px;font-family:Syne,sans-serif;font-size:52px;font-weight:800;line-height:1}.award-title{color:var(--text);margin-bottom:12px;font-family:Syne,sans-serif;font-size:18px;font-weight:600;line-height:1.3}.award-desc{color:var(--text2);font-size:13px;font-weight:300;line-height:1.75}.recommendations{background:var(--bg)}.reco-toolbar{justify-content:flex-end;margin-bottom:28px;display:flex}.reco-search input{background:var(--bg2);border:1px solid var(--border2);color:var(--text);border-radius:999px;width:min(320px,100%);padding:10px 14px;font-size:12px}.reco-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.reco-card{background:var(--bg2);border:1px solid var(--border2);text-align:left;border-radius:20px;flex-direction:column;gap:16px;padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;box-shadow:0 18px 34px #0003}.reco-card:hover{border-color:#a8ff7859;transform:translateY(-4px);box-shadow:0 24px 48px #00000040}.reco-card.featured{background:linear-gradient(135deg,#a8ff7814,#78ffd60d);border-color:#a8ff7873;grid-column:span 2}.reco-header{align-items:center;gap:16px;display:flex}.reco-avatar{flex-shrink:0}.reco-avatar img{object-fit:cover;border:1px solid var(--border2);border-radius:50%;width:56px;height:56px}.reco-avatar-fallback{border:1px solid var(--border2);letter-spacing:.12em;text-transform:uppercase;width:56px;height:56px;color:var(--text3);background:var(--bg3);border-radius:50%;justify-content:center;align-items:center;font-size:12px;display:flex}.reco-name{color:var(--text);font-size:16px;font-weight:600}.reco-role{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-top:4px;font-size:11px}.reco-text{color:var(--text2);font-size:14px;line-height:1.85}.reco-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.reco-date{color:var(--text3);font-size:12px}.rating-stars{color:var(--text3);gap:4px;font-size:12px;display:flex}.rating-star.filled{color:var(--accent)}.reco-empty{border:1px dashed var(--border2);text-align:center;color:var(--text3);border-radius:16px;padding:24px}.reco-skeleton{border-style:dashed;border-color:var(--border)}.reco-skeleton-row{background:var(--border2);border-radius:999px;height:10px;animation:1.5s ease-in-out infinite skeletonPulse}.reco-skeleton-row.wide{width:80%}.reco-skeleton-row.short{width:55%}.contact{background:var(--bg);flex-direction:column;justify-content:center;min-height:75vh;display:flex}.contact-inner{max-width:860px}.contact-big{letter-spacing:-.03em;margin-bottom:52px;font-family:Syne,sans-serif;font-size:clamp(50px,9vw,110px);font-weight:800;line-height:.92}.contact-big .ghost{color:#0000;-webkit-text-stroke:1px var(--text3)}.contact-big .accent{color:var(--accent)}.contact-links{flex-wrap:wrap;gap:16px;margin-bottom:48px;display:flex}.clink{border:1px solid var(--border2);color:var(--text);border-radius:100px;align-items:center;gap:12px;padding:14px 28px;text-decoration:none;transition:all .25s;display:flex}.clink:hover{border-color:var(--accent);color:var(--accent);background:#a8ff780a}.clink svg{opacity:.5;flex-shrink:0;width:18px;height:18px;transition:opacity .2s}.clink:hover svg{opacity:1}.clink span{font-size:14px;font-weight:400}.avail-badge{color:var(--accent);align-items:center;gap:10px;font-size:13px;font-weight:500;display:inline-flex}.avail-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}footer{background:var(--bg);border-top:1px solid var(--border);justify-content:space-between;align-items:center;padding:24px 60px;display:flex}footer p{color:var(--text3);font-size:12px}.reveal{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transform:translateY(44px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transform:translate(-44px)}.reveal-left.visible{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transform:translate(44px)}.reveal-right.visible{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transform:scale(.94)}.reveal-scale.visible{opacity:1;transform:scale(1)}.stagger>*{opacity:0;transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);transform:translateY(32px)}.stagger.visible>*{opacity:1;transform:translateY(0)}.stagger.visible>:first-child{transition-delay:0s}.stagger.visible>:nth-child(2){transition-delay:.1s}.stagger.visible>:nth-child(3){transition-delay:.2s}.stagger.visible>:nth-child(4){transition-delay:.3s}.stagger.visible>:nth-child(5){transition-delay:.4s}.admin-shell{background:var(--bg);grid-template-columns:240px 1fr;min-height:100vh;display:grid}.admin-sidebar{border-right:1px solid var(--border);height:100vh;padding:40px 24px;position:sticky;top:0}.admin-logo{margin-bottom:28px;font-family:Syne,sans-serif;font-size:20px;font-weight:700}.admin-nav{flex-direction:column;gap:8px;display:flex}.admin-nav a{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);border:1px solid #0000;border-radius:12px;padding:10px 12px;font-size:12px;text-decoration:none;transition:all .2s}.admin-nav a.active,.admin-nav a:hover{border-color:var(--border2);color:var(--accent)}.admin-content{padding:40px 60px 80px}.admin-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.admin-title{font-family:Syne,sans-serif;font-size:28px;font-weight:700}.admin-button{letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:100px;padding:10px 18px;font-size:12px;transition:background .2s,color .2s}.admin-button:hover{background:var(--accent);color:#000}.admin-button.secondary{border-color:var(--border2);color:var(--text2)}.admin-button.secondary:hover{background:var(--surface);color:var(--text)}.admin-table{border-collapse:collapse;width:100%;margin-top:16px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:14px 10px;font-size:13px}.admin-table th{color:var(--text3);text-transform:uppercase;letter-spacing:.1em;font-size:11px}.admin-table .actions{gap:10px;display:flex}.admin-table tr.draggable{cursor:grab}.admin-table tr.draggable:active{cursor:grabbing}.admin-form{grid-template-columns:1fr 1fr;gap:16px 24px;margin-top:24px;display:grid}.admin-form.full{grid-template-columns:1fr}.field{flex-direction:column;gap:8px;display:flex}.field label{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);font-size:11px}.field input,.field textarea,.field select,.admin-input{background:var(--bg3);border:1px solid var(--border2);color:var(--text);border-radius:12px;padding:12px 14px;font-family:Manrope,sans-serif;font-size:14px}.field textarea{resize:vertical;min-height:120px}.field .help{color:var(--text3);font-size:11px}.help{color:var(--text3);margin-top:8px;font-size:11px}.admin-footer{gap:12px;margin-top:16px;display:flex}.pill{text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border2);color:var(--text3);border-radius:100px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:inline-flex}.pill button{color:var(--text3);cursor:pointer;background:0 0;border:none}.inline-list{flex-wrap:wrap;gap:8px;display:flex}.admin-card{border:1px solid var(--border);background:var(--bg2);border-radius:16px;margin-top:20px;padding:24px}.upload-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.file-input{display:none}.upload-preview{align-items:center;gap:12px;margin-top:12px;display:flex}.upload-preview img{object-fit:cover;border:1px solid var(--border2);background:var(--bg3);border-radius:12px;width:72px;height:72px}.image-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:12px;display:grid}.image-item{border:1px solid var(--border2);background:var(--bg3);border-radius:12px;position:relative;overflow:hidden}.image-item img{object-fit:cover;width:100%;height:100px}.image-remove{letter-spacing:.08em;text-transform:uppercase;color:var(--text);border:1px solid var(--border2);cursor:pointer;background:#0000008c;border-radius:10px;padding:4px 8px;font-size:10px;position:absolute;top:8px;right:8px}.image-item.draggable{cursor:grab}.image-status{letter-spacing:.08em;text-transform:uppercase;color:var(--text);border:1px solid var(--border2);background:#0009;border-radius:10px;padding:4px 8px;font-size:10px;position:absolute;bottom:8px;left:8px}.upload-progress-list{gap:10px;margin-top:12px;display:grid}.upload-progress-item{gap:8px;display:grid}.upload-track{background:var(--border2);border-radius:999px;width:100%;height:6px;overflow:hidden}.upload-bar{background:linear-gradient(90deg, var(--accent), var(--accent2));width:0%;height:100%;transition:width .2s}.upload-error{color:#ffb3b3}.admin-pagination{justify-content:center;margin:20px 0 12px;display:flex}.admin-thumb{border:1px solid var(--border2);background:var(--bg3);border-radius:12px;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.admin-thumb img{object-fit:cover;width:100%;height:100%}.admin-thumb-placeholder{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-size:10px}.drop-zone{border:1px dashed var(--border2);background:var(--bg3);border-radius:14px;padding:18px;transition:border-color .2s,background .2s}.drop-zone.active{border-color:var(--accent);background:#a8ff7814}.drop-zone-inner{color:var(--text3);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.upload-actions{margin-top:10px}.option-pills{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.option-pill{border:1px solid var(--border2);color:var(--text3);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:100px;padding:6px 12px;font-size:10px}.option-pill:hover{border-color:var(--accent);color:var(--accent)}.upload-list{gap:12px;margin-top:12px;display:grid}.upload-item{border:1px solid var(--border2);background:var(--bg3);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px;display:flex}.upload-status{align-items:center;gap:12px;display:flex}.upload-filename{color:var(--text);font-size:13px}.link-list{gap:12px;margin-bottom:12px;display:grid}.link-row{grid-template-columns:1fr 1fr auto;gap:12px;display:grid}.toggle{width:52px;height:28px;display:inline-flex;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{background:var(--border2);border-radius:999px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--bg);border-radius:50%;width:22px;height:22px;transition:transform .2s;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translate(24px)}.modal-overlay{z-index:9997;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--bg2);border:1px solid var(--border2);border-radius:18px;gap:14px;width:min(420px,90vw);padding:24px;display:grid}.modal-title{font-family:Syne,sans-serif;font-size:20px}.modal-text{color:var(--text2);font-size:14px;line-height:1.7}.modal-actions{justify-content:flex-end;gap:12px;display:flex}.admin-notice{border:1px solid var(--border2);background:var(--bg3);color:var(--text2);border-radius:12px;margin:12px 0 18px;padding:12px 16px;font-size:13px}.admin-notice.success{color:var(--accent);border-color:#a8ff7859}.admin-notice.error{color:#ffb3b3;border-color:#ff787859}.admin-notice.info{border-color:var(--border2);color:var(--text2)}.login-card{border:1px solid var(--border);background:var(--bg2);border-radius:18px;max-width:420px;margin:160px auto;padding:32px}.login-card h2{margin-bottom:16px;font-family:Syne,sans-serif;font-size:28px}.login-card p{color:var(--text3);margin-bottom:24px;font-size:14px}.rich-editor{background:var(--bg3);border:1px solid var(--border2);border-radius:12px;min-height:160px;padding:12px}.rich-editor-area{min-height:140px;color:var(--text);outline:none;font-size:14px;line-height:1.7}.rich-editor-area:empty:before{content:attr(data-placeholder);color:var(--text3)}@media (width<=768px){.main-nav{padding:16px 24px}.nav-links,.nav-cta{display:none}.hero{padding:0 24px 60px}section{padding:80px 24px}.site-notice{margin:120px 24px 0}.about-grid,.skills-layout,.awards-grid,.reco-grid{grid-template-columns:1fr}.reco-card.featured{grid-column:span 1}.reco-toolbar{justify-content:stretch}.reco-search input{width:100%}.exp-item{grid-template-columns:1fr;gap:12px}.exp-arrow,.hero-stats{display:none}footer{text-align:center;flex-direction:column;gap:8px;padding:24px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{border-right:none;border-bottom:1px solid var(--border);height:auto;position:relative}.admin-content{padding:24px}.admin-form{grid-template-columns:1fr}.cad-grid{columns:1}.cad-detail{padding:140px 24px 80px}.cad-detail-header,.cad-gallery,.link-row{grid-template-columns:1fr}.cad-lightbox-nav.prev{left:16px}.cad-lightbox-nav.next{right:16px}}
