.title-on-lip{z-index:2;justify-content:flex-start;align-items:center;width:100%;height:100%;display:flex;position:absolute}.title-container{margin-top:10%;margin-left:5%}.first-frame-title{color:#fff;text-shadow:10px 15px 5px #0009,0 1.5px 1.5px #40404080;margin:0;font-size:clamp(2.25rem,9vw,5rem);font-weight:600}.first-frame-title.subtitle-text{font-size:clamp(1.5rem,6.5vw,4rem)}.frame-seq-section{width:100%;height:var(--frame-seq-scroll-height);position:relative}@media (max-width:900px),(prefers-reduced-motion:reduce){.frame-seq-section{height:auto}.title-container{margin-top:0;margin-left:6%;margin-right:6%}.frame-seq-sticky{height:auto!important}}.frame-seq-sticky{background:#000;justify-content:center;align-items:center;width:100%;height:100vh;position:sticky;top:0;overflow:hidden}.frame-seq-canvas{width:100%;height:100%;display:block}.frame-seq-white-overlay{opacity:0;pointer-events:none;z-index:1;background:#fff;position:absolute;inset:0}.frame-seq-experience{transform-origin:50%;z-index:2;pointer-events:none;letter-spacing:-.03em;color:#0a0b0d;white-space:nowrap;will-change:transform, opacity;font-size:clamp(3.5rem,10vw,7rem);font-weight:700;position:absolute;top:50%;left:50%}.frame-seq-progress{color:#9aa0aa;letter-spacing:.05em;background:#00000080;border-radius:999px;padding:6px 14px;font-size:.8rem;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.frame-seq-loader{z-index:3;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;display:flex;position:absolute;inset:0}.frame-seq-progress{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:#32cd32;margin:0;font-size:.875rem}
.comprise-component{background-color:#fff;width:100%}.comprise-track{height:var(--comprise-track-height);position:relative}.comprise-stage{background-color:#fff;height:100dvh;position:sticky;top:0;overflow:hidden}.comprise-panel{transform-origin:50%;opacity:0;will-change:transform, opacity, filter;background:#fff;position:absolute;inset:0;overflow:hidden;transform:translateY(100%)}.comprise-panel:first-child{opacity:0;transform:translateY(60px)}@media (max-width:900px){.comprise-track{height:auto}.comprise-stage{height:auto;position:static;overflow:visible}.comprise-panel,.comprise-panel:first-child{opacity:1;filter:none;will-change:auto;position:static;inset:auto;overflow:visible;transform:none}}
.profile-section{color:#1a1a1a;background:#fff;width:100%;min-height:100dvh;padding:80px 60px;display:flex;position:relative}.profile-section:before{content:"";filter:blur(.2px);z-index:0;background-image:url(/bg01.jpg);background-position:50%;background-size:cover;position:absolute;inset:-30px;transform:scale(1.1)}.profile-hero{z-index:1;will-change:transform;justify-content:space-between;align-items:center;gap:40px;max-width:1200px;margin:0 auto;display:flex;position:relative}.profile-hero-text{max-width:560px}.profile-greeting{letter-spacing:.08em;text-transform:uppercase;color:#1a1a1a;margin:0 0 4px;font-size:1rem}.profile-role{color:#4db6ac;min-height:1.2em;margin:0 0 20px;font-size:clamp(2.4rem,5vw,3.4rem);font-weight:800}.profile-caret{vertical-align:middle;background:#4db6ac;width:3px;height:.8em;margin-left:4px;animation:1s step-end infinite profile-caret-blink;display:inline-block}@keyframes profile-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.profile-blurb{color:#333;margin:0 0 32px;font-size:1.2rem;line-height:1.5}.profile-resume-btn{color:#fff;background:#1a1a1a;border-radius:999px;align-items:center;gap:10px;padding:14px 24px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.profile-resume-btn:hover{background:#333;transform:translateY(-2px)}.profile-hero-photo{aspect-ratio:324/405;border-radius:12px;flex-shrink:0;width:min(324px,72vw);height:auto;overflow:hidden}.profile-hero-photo img{object-fit:cover;width:100%;height:100%;display:block}.profile-divider{border-top:1px solid #e6e6e6;max-width:1200px;margin:60px auto}@media (max-width:900px){.profile-section{padding:60px 24px}.profile-hero{text-align:center;flex-direction:column-reverse}.profile-hero-text{max-width:100%}.profile-resume-btn{margin:0 auto}.profile-blurb{color:#333;margin:0 0 32px;font-size:1rem;line-height:1.3}.profile-section:before{display:none}}
.skills-section{background:#fff;justify-content:center;align-items:center;min-height:100dvh;padding:80px 60px 100px;display:flex}.section-inner{will-change:transform;z-index:1;position:relative}.cv-section-title{-webkit-text-decoration:capitalize;text-decoration:capitalize;color:#1a1a1a;border-left:5px solid #4db6ac;margin:0 0 48px;padding-left:16px;font-size:clamp(2rem,6vw,4rem);font-weight:800;line-height:1.2}.skills-grid{grid-template-columns:repeat(6,1fr);gap:40px 20px;width:100%;margin:0 auto;display:grid}.skill-item{flex-direction:column;align-items:center;gap:12px;display:flex}.skill-svg{overflow:visible}.skill-name{color:#555;text-align:center;margin:0;font-size:1.2rem;line-height:1.3}@media (max-width:900px){.skills-section{padding:60px 32px 80px}.skills-grid{grid-template-columns:repeat(3,1fr);gap:36px 16px}}@media (max-width:480px){.skills-grid{grid-template-columns:repeat(2,1fr)}}
.edu-exp-section{background:#fff;justify-content:center;align-items:center;min-height:100dvh;padding:80px 60px 100px;display:flex;position:relative}.section-inner{will-change:transform}.edu-exp-grid{z-index:1;grid-template-columns:1fr 1fr;gap:80px;margin:0 auto;display:grid;position:relative}.col-heading{color:#1a1a1a;align-items:center;gap:10px;margin:0 0 28px;font-size:1.3rem;font-weight:700;display:flex}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:#d0d0d0;width:1px;position:absolute;top:8px;bottom:8px;left:5px}.timeline-item{align-items:flex-start;gap:16px;padding:0 0 28px;display:flex;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{z-index:1;background:#fff;border:2px solid #4db6ac;border-radius:50%;flex-shrink:0;width:11px;height:11px;margin-top:5px;position:relative}.timeline-body{flex:1}.timeline-title{text-transform:uppercase;letter-spacing:.04em;color:#1a1a1a;margin-bottom:4px;font-size:.82rem;font-weight:700;display:block}.timeline-meta{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.timeline-org{color:#555;font-size:.88rem}.timeline-year{color:#888;white-space:nowrap;font-size:.82rem}@media (max-width:700px){.edu-exp-section{padding:60px 24px 80px}.edu-exp-grid{grid-template-columns:1fr;gap:48px}}
.project-dialog{color:#1a1a1a;background:#fff;border:none;border-radius:16px;width:min(760px,100vw - 40px);max-height:min(88vh,900px);padding:0;overflow:hidden;box-shadow:0 24px 70px #00000047}.project-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#141c1e8c}.project-dialog[open]{animation:.22s ease-out project-dialog-in}.project-dialog[open]::backdrop{animation:.22s ease-out project-backdrop-in}@keyframes project-dialog-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes project-backdrop-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.project-dialog[open],.project-dialog[open]::backdrop{animation:none}}.project-dialog-body{max-height:inherit;flex-direction:column;display:flex;overflow-y:auto}.project-dialog-close{cursor:pointer;color:#1a1a1a;background:#ffffffe6;border:none;border-radius:50%;place-items:center;width:36px;height:36px;transition:background .2s,color .2s;display:grid;position:absolute;top:14px;right:14px;box-shadow:0 2px 10px #00000026}.project-dialog-close:hover{color:#fff;background:#4db6ac}.project-dialog-image{aspect-ratio:16/9;object-fit:cover;background:#f0f0f0;flex-shrink:0;width:100%;display:block}.project-dialog-placeholder{aspect-ratio:16/9;color:#4db6ac;background:linear-gradient(135deg,#e0f2f1 0%,#b2dfdb 50%,#c8e6c9 100%);flex-shrink:0;place-items:center;width:100%;font-weight:600;display:grid}.project-dialog-content{padding:28px 32px 32px}.project-dialog-title{margin:0;font-size:1.6rem;font-weight:700}.project-dialog-description{color:#555;white-space:pre-line;margin:16px 0 0;font-size:.95rem;line-height:1.75}.project-dialog-tags{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.project-dialog-actions{gap:12px;margin-top:28px;display:flex}.project-dialog-visit{color:#fff;background:#4db6ac;border-radius:999px;align-items:center;gap:8px;padding:12px 24px;font-size:.92rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.project-dialog-visit:hover{background:#3a9e94;transform:translateY(-1px)}.project-dialog-dismiss{color:#1a1a1a;cursor:pointer;background:0 0;border:1.5px solid #ccc;border-radius:999px;padding:12px 24px;font-size:.92rem;font-weight:600;transition:border-color .2s,color .2s}.project-dialog-dismiss:hover{border-color:#1a1a1a}@media (max-width:700px){.project-dialog-content{padding:22px 20px 26px}.project-dialog-actions{flex-direction:column}.project-dialog-visit,.project-dialog-dismiss{text-align:center;justify-content:center}}
.slick-slider{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent;display:block;position:relative}.slick-list{margin:0;padding:0;display:block;position:relative;overflow:hidden}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{transform:translate(0,0)}.slick-track{margin-left:auto;margin-right:auto;display:block;position:relative;top:0;left:0}.slick-track:before,.slick-track:after{content:"";display:table}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{float:left;height:100%;min-height:1px;display:none}[dir=rtl] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{border:1px solid #0000;height:auto;display:block}.slick-arrow.slick-hidden{display:none}
.slick-loading .slick-list{background:#fff url(../media/ajax-loader.2df4ohj-z-7_l.gif) 50% no-repeat}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(../media/slick.2mbnnj2ldqw9v.eot);src:url(../media/slick.2mbnnj2ldqw9v.eot)format("embedded-opentype"),url(../media/slick.1vsdartgie2p6.woff)format("woff"),url(../media/slick.31nmwotl_nifp.ttf)format("truetype"),url(../media/slick.396jm6rswume_.svg)format("svg")}.slick-prev,.slick-next{cursor:pointer;color:#0000;background:0 0;border:none;outline:none;width:20px;height:20px;padding:0;font-size:0;line-height:0;display:block;position:absolute;top:50%;transform:translateY(-50%)}.slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:#0000;background:0 0;outline:none}.slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1}.slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25}.slick-prev:before,.slick-next:before{opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:slick;font-size:20px;line-height:1}.slick-prev{left:-25px}[dir=rtl] .slick-prev{left:auto;right:-25px}.slick-prev:before{content:"←"}[dir=rtl] .slick-prev:before{content:"→"}.slick-next{right:-25px}[dir=rtl] .slick-next{left:-25px;right:auto}.slick-next:before{content:"→"}[dir=rtl] .slick-next:before{content:"←"}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{text-align:center;width:100%;margin:0;padding:0;list-style:none;display:block;position:absolute;bottom:-25px}.slick-dots li{cursor:pointer;width:20px;height:20px;margin:0 5px;padding:0;display:inline-block;position:relative}.slick-dots li button{cursor:pointer;color:#0000;background:0 0;border:0;outline:none;width:20px;height:20px;padding:5px;font-size:0;line-height:0;display:block}.slick-dots li button:hover,.slick-dots li button:focus{outline:none}.slick-dots li button:hover:before,.slick-dots li button:focus:before{opacity:1}.slick-dots li button:before{content:"•";text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:20px;height:20px;font-family:slick;font-size:6px;line-height:20px;position:absolute;top:0;left:0}.slick-dots li.slick-active button:before{opacity:.75;color:#000}
.projects-section{background:#fff;justify-content:center;align-items:center;padding:80px 60px 100px;display:flex}.section-inner{will-change:transform;max-width:1500px}.projects-header{justify-content:space-between;align-items:flex-start;gap:40px;margin:0 auto 56px;display:flex}.projects-header-left{flex:1}.projects-subtitle{color:#555;max-width:1000px;margin:16px 0 0;font-size:.95rem;line-height:1.7}.view-portfolio-btn{color:#fff;background:#4db6ac;border-radius:999px;flex-shrink:0;align-items:center;gap:8px;margin-top:8px;padding:14px 26px;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.view-portfolio-btn:hover{background:#3a9e94;transform:translateY(-1px)}.project-card{flex-direction:column;gap:0;padding:0 15px;display:flex}.project-screenshot{aspect-ratio:16/9;background:#f0f0f0;border:1px solid #e8e8e8;border-radius:10px;width:100%;overflow:hidden}.project-screenshot img{object-fit:cover;width:100%;height:100%;display:block}.project-placeholder{background:linear-gradient(135deg,#e0f2f1 0%,#b2dfdb 50%,#c8e6c9 100%);justify-content:center;align-items:center;width:100%;height:100%;transition:transform .35s;display:flex;transform:scale(1)}.project-placeholder:hover{transform:scale(.92)rotate(-1deg)}.project-placeholder span{color:#4db6ac;opacity:.6;font-size:1rem;font-weight:600}.project-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;display:flex}.project-tags{flex-wrap:wrap;gap:8px;display:flex}.project-tag{color:#1a1a1a;white-space:nowrap;border:1.5px solid #1a1a1a;border-radius:999px;padding:5px 14px;font-size:.8rem;font-weight:500}.project-link-btn{width:40px;height:40px;font:inherit;cursor:pointer;color:#1a1a1a;background:0 0;border:1.5px solid #ccc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:border-color .2s,background .2s,color .2s;display:flex}.project-link-btn:hover{color:#fff;background:#4db6ac;border-color:#4db6ac}.project-name{color:#1a1a1a;margin:10px 0 0;font-size:1.15rem;font-weight:700}@media (max-width:700px){.section-inner{width:100%}.projects-section{padding:60px 24px 80px}.projects-header{flex-direction:column;gap:24px}.projects-grid{grid-template-columns:1fr}}
.contact-section{color:#1a1a1a;background:#fff;align-items:center;min-height:100dvh;padding:80px 60px 100px;display:flex}.contact-section .section-inner{border:1px solid #ddd;border-radius:12px;width:100%;max-width:700px;margin:0 auto;padding:20px 30px;box-shadow:0 4px 12px #0000001a}.contact-subtitle{color:#555;margin:0 0 40px;font-size:1rem;line-height:1.6}.contact-form{flex-direction:column;gap:20px;display:flex}.contact-field{flex-direction:column;gap:6px;display:flex}.contact-field label{color:#1a1a1a;font-size:.85rem;font-weight:600}.contact-field input{font:inherit;color:#1a1a1a;resize:vertical;background:#fafafa;border:1.5px solid #ddd;border-radius:8px;padding:12px 14px;transition:border-color .2s,background .2s}.contact-field textarea:focus{background:#fafafa}.contact-field input:focus,.contact-field textarea:focus{background:#fff;border-color:#4db6ac;outline:none}.contact-submit-btn:hover{background:#2f7b73;transform:translateY(-2px)}.contact-success{color:#1a1a1a;background:#e0f2f1;border-radius:12px;padding:24px;font-size:1rem;line-height:1.6}@media (max-width:700px){.contact-section{padding:60px 24px 80px}}
