.page-module__E0kJGG__page{width:min(1400px,100% - 64px);color:var(--foreground);margin:0 auto;padding:32px 0 64px}.page-module__E0kJGG__topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#0d1c31eb;border:1px solid #67e8f93d;border-radius:16px;justify-content:center;align-items:center;width:min(1400px,100% - 64px);padding:18px 24px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #0206178c,0 0 24px #67e8f912}.page-module__E0kJGG__brand{letter-spacing:-.04em;font-weight:700}.page-module__E0kJGG__nav{color:var(--muted);justify-content:center;gap:10px;font-size:1.05rem;display:flex}.page-module__E0kJGG__nav a{border-radius:8px;padding:10px 14px;transition:color .2s}.page-module__E0kJGG__nav a:hover{color:var(--foreground);background:#67e8f91a}.page-module__E0kJGG__hero{grid-template-columns:minmax(280px,.75fr) minmax(0,1.5fr);align-items:center;gap:32px;padding:80px 48px 40px;display:grid}.page-module__E0kJGG__heroText{flex-direction:column;gap:20px;display:flex}.page-module__E0kJGG__heroName{color:var(--foreground);letter-spacing:-.03em;margin-bottom:-6px;font-size:clamp(2rem,3vw,3.25rem);font-weight:700;line-height:1.05}.page-module__E0kJGG__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.74rem;font-weight:700}.page-module__E0kJGG__heroText h1{letter-spacing:-.02em;max-width:640px;font-size:clamp(1.75rem,2.15vw,2.2rem);line-height:1.05}.page-module__E0kJGG__summary{max-width:680px;color:var(--muted);font-size:1.08rem;line-height:1.8}.page-module__E0kJGG__actions{flex-wrap:wrap;gap:16px;padding-top:8px;display:flex}.page-module__E0kJGG__actions a,.page-module__E0kJGG__footerLinks a,.page-module__E0kJGG__modalActions a{transition:transform .2s,border-color .2s,background .2s}.page-module__E0kJGG__primary,.page-module__E0kJGG__secondary,.page-module__E0kJGG__modalActions a{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:0 20px;font-weight:600;display:inline-flex}.page-module__E0kJGG__primary{background:linear-gradient(135deg, var(--accent-strong), var(--accent));color:#061320}.page-module__E0kJGG__secondary{border-color:var(--panel-border);color:var(--foreground);background:#94a3b80a}.page-module__E0kJGG__primary:hover,.page-module__E0kJGG__secondary:hover,.page-module__E0kJGG__footerLinks a:hover,.page-module__E0kJGG__modalActions a:hover{transform:translateY(-1px)}.page-module__E0kJGG__socials{color:var(--muted);flex-wrap:wrap;gap:18px;padding-top:6px;display:flex}.page-module__E0kJGG__socials a{align-items:center;gap:7px;display:inline-flex;position:relative}.page-module__E0kJGG__socials img{width:18px;height:18px}.page-module__E0kJGG__socials a:after{content:"";transform-origin:0;background:#67e8f999;width:100%;height:1px;transition:transform .2s;position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.page-module__E0kJGG__socials a:hover:after{transform:scaleX(1)}.page-module__E0kJGG__heroPhotoPanel{justify-content:center;align-items:center;display:flex}.page-module__E0kJGG__profilePhoto{object-fit:cover;object-position:center 38%;border:3px solid #67e8f9b3;border-radius:20px;width:min(100%,440px);height:500px;margin-bottom:24px;box-shadow:0 12px 34px #02061773}.page-module__E0kJGG__cardBadge{background:var(--accent-soft);color:var(--accent);letter-spacing:.03em;border:1px solid #67e8f92e;border-radius:999px;align-items:center;padding:8px 12px;font-size:.72rem;font-weight:600;display:inline-flex}.page-module__E0kJGG__cardTitle{margin-top:24px;margin-bottom:18px;font-size:1.1rem;font-weight:700}.page-module__E0kJGG__heroCard ul{color:var(--muted);gap:12px;list-style:none;display:grid}.page-module__E0kJGG__heroCard li{padding-left:22px;position:relative}.page-module__E0kJGG__heroCard li:before{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-radius:50%;width:8px;height:8px;position:absolute;top:10px;left:0}.page-module__E0kJGG__section{padding-top:90px;scroll-margin-top:110px}.page-module__E0kJGG__sectionHeading{margin-bottom:28px}.page-module__E0kJGG__sectionHeading h2{letter-spacing:-.05em;font-size:clamp(1.8rem,3vw,2.5rem)}.page-module__E0kJGG__sectionNote{color:var(--muted);margin-top:8px;font-style:italic}.page-module__E0kJGG__projectHeading{text-align:left}.page-module__E0kJGG__skillGrid,.page-module__E0kJGG__projectGrid{gap:24px;display:grid}.page-module__E0kJGG__skillGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.page-module__E0kJGG__skillGroup{background:#1c2a38cc;border:1px solid #67e8f93d;border-radius:20px;padding:22px;box-shadow:inset 0 1px #94a3b81f}.page-module__E0kJGG__skillGroup h3{margin-bottom:16px;font-size:1.08rem}.page-module__E0kJGG__skillGroup .page-module__E0kJGG__techStack{gap:16px 18px}.page-module__E0kJGG__skillGroup .page-module__E0kJGG__techItem{min-width:88px}.page-module__E0kJGG__strengthsGrid{flex-wrap:wrap;gap:14px;display:flex}.page-module__E0kJGG__strengthTag{color:var(--foreground);background:#67e8f914;border:1px solid #67e8f933;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.9rem;font-weight:600;display:inline-flex}.page-module__E0kJGG__strengthIcon{background:#67e8f91f;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:.9rem;display:inline-flex}.page-module__E0kJGG__publicationCard{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer;border:1px solid var(--panel-border);background:#0f172ab8;border-radius:18px;justify-content:space-between;gap:24px;padding:24px;display:flex}.page-module__E0kJGG__publicationCard:hover{background:#121d2ae6;border-color:#67e8f973}.page-module__E0kJGG__publicationCard h3{margin:8px 0 10px;font-size:1.25rem}.page-module__E0kJGG__publicationCard p:last-child{max-width:760px;color:var(--muted);line-height:1.7}.page-module__E0kJGG__publicationType,.page-module__E0kJGG__publicationMeta{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;font-weight:700}.page-module__E0kJGG__publicationMeta{flex:none}.page-module__E0kJGG__publicationDetails{color:var(--muted);gap:12px;padding-left:20px;line-height:1.7;display:grid}.page-module__E0kJGG__chips{flex-wrap:wrap;gap:10px;display:flex}.page-module__E0kJGG__chips span{background:var(--chip);color:var(--foreground);border:1px solid #94a3b81f;border-radius:999px;align-items:center;padding:8px 12px;font-size:.81rem;display:inline-flex}.page-module__E0kJGG__skillTechStack{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px 14px;display:grid}.page-module__E0kJGG__skillTechStack .page-module__E0kJGG__techItem{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:88px;font-size:.72rem;line-height:1.3;display:inline-flex}.page-module__E0kJGG__skillTechStack .page-module__E0kJGG__techItem img{object-fit:contain;background:#ffffff05;border-radius:12px;width:52px;height:52px;padding:2px;display:block}.page-module__E0kJGG__skillTechStack .page-module__E0kJGG__techItem img.page-module__E0kJGG__lightTechIcon{background:#ffffff26;border-radius:12px;padding:2px}.page-module__E0kJGG__skillTechStack .page-module__E0kJGG__techFallback{width:52px;height:52px;color:var(--foreground);background:linear-gradient(135deg,#67e8f924,#94a3b82e);border-radius:12px;place-items:center;font-size:1rem;font-weight:700;display:grid}.page-module__E0kJGG__projectTechStack{flex-wrap:wrap;align-items:center;gap:12px 14px;display:flex}.page-module__E0kJGG__projectTechStack .page-module__E0kJGG__techItem{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:.76rem;line-height:1;display:inline-flex}.page-module__E0kJGG__projectTechStack .page-module__E0kJGG__techItem img{object-fit:contain;width:19px;height:19px}.page-module__E0kJGG__projectTechStack .page-module__E0kJGG__techFallback{width:19px;height:19px;color:var(--foreground);background:#94a3b833;border-radius:3px;flex:none;place-items:center;font-size:.52rem;font-weight:700;line-height:1;display:grid}.page-module__E0kJGG__projectTechStack .page-module__E0kJGG__techItem img.page-module__E0kJGG__lightTechIcon{background:#f8fafc;border-radius:3px;padding:2px}.page-module__E0kJGG__projectGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-module__E0kJGG__projectCard{appearance:none;text-align:left;color:inherit;cursor:pointer;background:#0f172ab8;border:1px solid #94a3b81f;border-radius:22px;flex-direction:column;gap:16px;padding:24px;transition:transform .25s,border-color .25s,box-shadow .25s,background .25s;display:flex;position:relative;overflow:hidden}.page-module__E0kJGG__projectCard:before{content:"";background:radial-gradient(circle at top left, color-mix(in srgb, var(--project-accent) 25%, transparent), transparent 38%);opacity:0;width:100%;height:100%;transition:opacity .25s;position:absolute;inset:0 auto auto 0}.page-module__E0kJGG__projectCard:hover{border-color:color-mix(in srgb, var(--project-accent) 72%, #94a3b833);box-shadow:0 0 0 1px color-mix(in srgb, var(--project-accent) 40%, transparent), 0 24px 50px #02061766;background:#121d2ae6;transform:translateY(-8px)}.page-module__E0kJGG__projectCard:hover:before{opacity:1}.page-module__E0kJGG__projectCard>*{z-index:1;position:relative}.page-module__E0kJGG__projectHeader{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-module__E0kJGG__projectHeader h3{letter-spacing:0;max-width:85%;font-size:1.25rem;font-weight:600;line-height:1.3}.page-module__E0kJGG__projectDate{color:var(--muted);margin-top:10px;font-size:.92rem}.page-module__E0kJGG__projectIcon{justify-content:center;align-items:center;width:94px;min-width:94px;height:94px;display:flex}.page-module__E0kJGG__projectIcon img{object-fit:contain;width:100%;height:100%;display:block}.page-module__E0kJGG__projectIcon img[alt=ABLOY\ logo]{background:#fff;width:92px;height:auto}.page-module__E0kJGG__projectCard p{color:var(--muted);min-height:120px;line-height:1.7}.page-module__E0kJGG__timeline{gap:18px;display:grid}.page-module__E0kJGG__timelineItem{border:1px solid var(--panel-border);background:#0f172ab8;border-radius:18px;grid-template-columns:180px 1fr;gap:20px;padding:22px;display:grid}.page-module__E0kJGG__interactiveItem{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer}.page-module__E0kJGG__interactiveItem:hover{background:#121d2ae6;border-color:#67e8f973}.page-module__E0kJGG__timelineContent,.page-module__E0kJGG__modalOrganization{align-items:center;gap:16px;display:flex}.page-module__E0kJGG__experienceContent{grid-template-columns:minmax(0,1fr) minmax(260px,auto);align-items:center;gap:24px;min-width:0;display:grid}.page-module__E0kJGG__experienceContent .page-module__E0kJGG__projectTechStack{justify-content:flex-end}.page-module__E0kJGG__organizationLogo{object-fit:contain;flex:none;width:74px;height:48px}.page-module__E0kJGG__modalOrganization{align-items:flex-start;margin-bottom:20px}.page-module__E0kJGG__modalOrganization img{object-fit:contain;flex:none;width:100px;height:64px}.page-module__E0kJGG__date{color:var(--accent);font-size:.9rem;font-weight:600}.page-module__E0kJGG__timelineItem h3{margin-bottom:6px}.page-module__E0kJGG__timelineItem p{color:var(--muted);margin-bottom:10px}.page-module__E0kJGG__timelineItem ul{color:var(--muted);gap:8px;padding-left:18px;line-height:1.6;display:grid}.page-module__E0kJGG__footer{border-top:1px solid var(--panel-border);justify-content:space-between;align-items:end;gap:20px;margin-top:90px;padding-top:24px;display:flex}.page-module__E0kJGG__footer h2{letter-spacing:-.05em;font-size:clamp(1.8rem,3vw,2.3rem)}.page-module__E0kJGG__footerLinks{color:var(--muted);flex-wrap:wrap;gap:18px;display:flex}.page-module__E0kJGG__footerLinks a{align-items:center;gap:7px;display:inline-flex}.page-module__E0kJGG__footerLinks img{width:18px;height:18px}.page-module__E0kJGG__modalBackdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#010308b8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.page-module__E0kJGG__modal{width:min(820px,100%);max-height:86vh;color:var(--foreground);background:linear-gradient(#101928fa,#0a111dfa);border:1px solid #94a3b833;border-radius:26px;padding:28px 34px 30px;position:relative;overflow-y:auto;box-shadow:0 32px 120px #00000080}.page-module__E0kJGG__modal h3{letter-spacing:-.02em;margin-bottom:6px;font-size:clamp(1.35rem,2vw,2rem);line-height:1.2}.page-module__E0kJGG__modalDate{color:var(--accent);margin-bottom:18px;font-size:1.05rem;font-weight:700}.page-module__E0kJGG__modalDescription{color:#dfe7f4;margin-bottom:26px;font-size:1.08rem;line-height:1.9}.page-module__E0kJGG__modalActions{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.page-module__E0kJGG__modalActions a{color:var(--accent);background:#67e8f90f;border-color:#67e8f92e}.page-module__E0kJGG__closeButton{width:36px;height:36px;color:var(--foreground);cursor:pointer;background:#94a3b80f;border:1px solid #94a3b833;border-radius:50%;font-size:1.7rem;line-height:1;position:absolute;top:18px;right:18px}@media (max-width:900px){.page-module__E0kJGG__hero,.page-module__E0kJGG__skillGrid,.page-module__E0kJGG__projectGrid,.page-module__E0kJGG__timelineItem,.page-module__E0kJGG__footer{grid-template-columns:1fr;display:grid}.page-module__E0kJGG__hero{padding-top:48px;padding-inline:0}.page-module__E0kJGG__topbar{flex-direction:column;align-items:flex-start;gap:16px;width:calc(100% - 20px)}.page-module__E0kJGG__nav{flex-wrap:wrap}.page-module__E0kJGG__projectGrid,.page-module__E0kJGG__experienceContent{grid-template-columns:1fr}.page-module__E0kJGG__experienceContent .page-module__E0kJGG__projectTechStack{justify-content:flex-start}}@media (max-width:600px){.page-module__E0kJGG__page{width:min(100% - 20px,1200px)}.page-module__E0kJGG__topbar{padding:16px 18px}.page-module__E0kJGG__nav{gap:10px 14px;font-size:.86rem}.page-module__E0kJGG__heroPhotoPanel,.page-module__E0kJGG__skillGroup,.page-module__E0kJGG__projectCard,.page-module__E0kJGG__timelineItem,.page-module__E0kJGG__modal{padding:18px}.page-module__E0kJGG__hero{padding-top:132px}.page-module__E0kJGG__actions{flex-direction:column;align-items:stretch}.page-module__E0kJGG__primary,.page-module__E0kJGG__secondary{width:100%}.page-module__E0kJGG__projectHeader{flex-direction:column}.page-module__E0kJGG__projectHeader h3{max-width:100%}.page-module__E0kJGG__projectCard p{min-height:initial}}
