@import"https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap";*{margin:0;padding:0;text-align:center;font-size:16px;box-sizing:border-box}body,html,#root{width:100vw;height:100%}#root{display:flex;flex-direction:column;flex-shrink:1}#mapComponent *:not(#map){font-family:Arial,Helvetica,sans-serif}#mapComponent{position:relative;width:100%;height:100%}#mapComponent>#map{position:relative;top:0;bottom:0;width:100%;height:100%}#mapComponent>#map *{font-size:12px;text-align:start}#mapComponent #search{position:absolute;text-align:left;padding:5px;top:20px;left:20px;right:20px;height:25px;background-color:#fff;z-index:1;border-style:none;border-width:1px;box-shadow:1px 2px 10px #00000080}#mapComponent #routeSelector{position:absolute;top:45px;left:20px;right:20px;max-height:40vh;overflow-y:auto;background-color:#fff;z-index:1}#mapComponent #routeSelector p:not(#mapComponent #instructions p){text-align:start;padding:5px;border-bottom:solid 1px #aaaaaa}#mapComponent #routeSelector p:active{background-color:#0ff}#mapComponent #instructions{padding:5px;background-color:#d2f8cc}#mapComponent #instructions #travelTime{display:flex;justify-content:space-between}#mapComponent #instructions #indicators{display:flex;justify-content:space-evenly;align-items:center;gap:10px}#mapComponent #instructions #directions p{padding:5px;border-bottom:#dbdbdb 1px solid}#rightClick{position:absolute;background:#fff;border-radius:5px;box-shadow:1px 2px 10px #0000004d}#rightClick ul{list-style-type:none;margin:5px;padding:0}#rightClick ul li:hover{background-color:#dfdfdf;cursor:pointer}#homePage{color:#b6faf8;width:100%;overflow-x:hidden;background:radial-gradient(circle at 50% 0%,#000629,#03162f 60%,#000311);padding:20px 50px;display:flex;flex-direction:column;align-items:center;font-family:Tenorite,Trebuchet MS,Lucida Sans Unicode,Lucida Grande,Lucida Sans,Arial,sans-serif}@font-face{font-family:Tenorite;src:url(/assets/29595851800-DsXgM5T8.ttf)}#homePage .upperCase{text-transform:uppercase}#homePage .sciBorder{padding:20px;border:2px solid #042433}#homePage .sciText{font-family:Orbitron}#presentationComponent{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;gap:10px;width:75%;min-width:1020px}#presentationComponent #portfolioAvatar{-webkit-mask-image:linear-gradient(to bottom,black 75%,transparent 100%);mask-image:linear-gradient(to bottom,black 75%,transparent 100%);filter:brightness(86%) contrast(110%) saturate(85%);transform:scaleX(-1)}#presentationComponent h2{color:#00fff3;text-shadow:0px 0px 4px;font-size:2rem;margin-bottom:5px;text-align:left}#presentationComponent h3{color:#00fff3;text-shadow:0px 0px 4px;font-size:1.3rem;font-style:italic;margin-bottom:25px;text-align:left}#presentationComponent h4{font-size:1.2rem;margin-bottom:10px;text-align:left}#presentationComponent p{text-align:justify;padding:5px 0}#navigationComponent{margin:20px 0}#navigationComponent li{list-style:none;color:#00fff3;font-size:1.5rem;text-shadow:0 0 4px #00FFF3;cursor:pointer;padding:5px 10px;border:1px solid #00FFF3;box-shadow:0 0 6px 2px #00fff3;border-radius:6px;transition:box-shadow .3s ease-in-out}#navigationComponent li:hover{box-shadow:0 0 12px 2px #00fff3}#navigationComponent ul{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:20px}#skillsComponent{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;margin:25px 0}#skillsComponent .categoryWrapper{position:relative;display:grid;gap:10px;grid-template-rows:repeat(2,auto);grid-template-columns:repeat(2,max-content)}#skillsComponent .category{position:relative;display:flex;flex-direction:column;padding:10px;gap:10px}#skillsComponent .skillsWrapper{position:relative;display:grid;grid-template-columns:repeat(4,max-content);gap:10px}#skillsComponent .progressWrapper{display:flex;align-items:center;position:relative}#skillsComponent .icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}#skillsComponent .title{font-size:1.7rem;font-weight:bolder}#skillsComponent .categoryTitle{font-size:1.5rem}.progress-circle{transform:rotate(-90deg)}circle{fill:none;stroke-width:3;r:45;cx:50;cy:50}circle.bg{stroke:transparent}circle.progress{stroke:#fff;stroke-dasharray:283;stroke-dashoffset:0;transition:stroke-dashoffset .3s}#envelope *{color:var(--letter-ink, #2b2320);font-family:Cormorant Garamond,EB Garamond,Georgia,Times New Roman,serif}@font-face{font-family:Cormorant Garamond;src:url(/assets/CormorantGaramond-Regular-BtKDB5pG.ttf)}#envelope{width:300px;height:200px;perspective:1200px;position:relative;perspective-origin:50% 50%;transform-style:preserve-3d;cursor:pointer;transition:transform .65s cubic-bezier(.2,.8,.2,1);transform-origin:50% 50%}#envelope[data-stage=front]{transform:scale(1.35)}#envelope[data-stage=front] .tilt,#envelope[data-stage=front] .sparkle{animation-play-state:paused}#envelope .tilt,#envelope .yaw,#envelope .spin{width:100%;height:100%;transform-style:preserve-3d}#envelope .tilt{animation:float 4s ease-in-out infinite}#envelope[data-stage=front] .tilt{animation:none;transform:rotate(0) translateY(0)}@keyframes float{0%,to{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(-20px)}}#envelope .sparkles{position:absolute;top:-70px;right:-70px;bottom:-70px;left:-70px;pointer-events:none;z-index:20;transform-style:preserve-3d}#envelope .sparkle{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:999px;background:radial-gradient(circle,var(--sparkle-core, rgba(255, 255, 255, .95)) 0%,var(--sparkle-mid, rgba(255, 255, 255, .7)) 35%,rgba(255,255,255,0) 70%);opacity:0;transform:translateZ(40px) scale(.5);filter:blur(var(--sparkle-blur, 2px));mix-blend-mode:screen;animation:sparkleTwinkle var(--dur) ease-in-out infinite;animation-delay:var(--delay);will-change:transform,opacity}@keyframes sparkleTwinkle{0%{opacity:0;transform:translate3d(0,8px,40px) scale(.4)}35%{opacity:1;transform:translate3d(0,-6px,40px) scale(1)}70%{opacity:.6;transform:translate3d(0,calc(-1 * var(--drift)),40px) scale(.85)}to{opacity:0;transform:translate3d(0,calc(-1 * (var(--drift) + 10px)),40px) scale(.6)}}#envelope .yaw{transform:rotateY(-45deg)}#envelope[data-stage=front] .yaw{transform:rotateY(0)}#envelope .spin{position:relative;transform-origin:50% 50%;animation:spinY 8s linear infinite;will-change:transform}@keyframes spinY{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}#envelope .face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:5px;backface-visibility:hidden;background:radial-gradient(120% 90% at 30% 20%,rgba(255,255,255,.35),transparent 55%),radial-gradient(120% 100% at 70% 80%,rgba(0,0,0,.08),transparent 60%),linear-gradient(180deg,var(--env-paper-1, #f3e6d2),var(--env-paper-2, #e8d2b6)),repeating-linear-gradient(90deg,rgba(120,90,60,.07) 0 1px,transparent 1px 6px);border:1px solid rgba(0,0,0,.06);box-shadow:0 18px 30px #00000047}#envelope .face.front{padding:18px 18px 16px;display:flex;flex-direction:column;justify-content:space-between}#envelope .face.front:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:10px;background:radial-gradient(120% 90% at 30% 20%,rgba(255,255,255,.35),transparent 55%),linear-gradient(180deg,#ffffff3d,#ffffff1a);border:1px solid rgba(43,35,32,.1);box-shadow:inset 0 1px #ffffff40,inset 0 -1px #0000000f;z-index:0}#envelope .face.front:after{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;border-radius:8px;border:1px solid rgba(43,35,32,.16);outline:1px solid rgba(43,35,32,.08);outline-offset:-6px;opacity:.95;z-index:0}#envelope .face.front>*{position:relative;z-index:1}#envelope .envelopeSticker{position:absolute;left:var(--env-sticker-x, 14px);top:var(--env-sticker-y, 14px);width:var(--env-sticker-size, 60px);height:var(--env-sticker-size, 60px);background-image:var(--env-sticker-img, none);background-repeat:no-repeat;background-size:contain;background-position:center;transform:rotate(var(--env-sticker-rot, 0deg)) translateZ(6px);filter:drop-shadow(0 10px 12px rgba(0,0,0,.25));pointer-events:none;z-index:2;display:var(--env-sticker-display, none);opacity:var(--env-sticker-opacity, 1)}#envelope .recipient{text-align:center;margin-top:10px}#envelope .recipient p{margin:0;font-size:13px;letter-spacing:.22em;text-transform:uppercase;opacity:.75}#envelope .recipient h1{margin:6px 0 0;font-size:34px;font-style:italic;letter-spacing:.02em;line-height:1.05}#envelope .recipient h1:after{content:"";display:block;width:68%;height:1px;margin:10px auto 0;background:#2b23202e;box-shadow:0 10px #2b23201f,0 20px #2b232014;opacity:.8}#envelope .sender{align-self:flex-end;text-align:right;margin-bottom:6px;padding-right:6px}#envelope .sender p{margin:0 0 2px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.65}#envelope .sender h2{margin:0;font-size:18px;font-style:italic;opacity:.9}#envelope .face.front .sender:after{content:"";position:absolute;right:-2px;bottom:-4px;width:56px;height:56px;border-radius:999px;background:radial-gradient(circle,rgba(138,46,59,.14),transparent 65%);filter:blur(.2px);opacity:.8;pointer-events:none}#envelope .face.back{transform:rotateY(180deg);overflow:visible}#envelope .face.back:before{content:"";position:absolute;left:10px;right:10px;top:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(43,35,32,.22),transparent);opacity:.55;transform:translateZ(2px);pointer-events:none}#envelope .face.back:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(0,0,0,.1) 100%),radial-gradient(90% 80% at 20% 20%,rgba(120,90,60,.1),transparent 60%);mix-blend-mode:multiply;opacity:.35;pointer-events:none}#envelope .backSeam{position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:10px;border:1px dashed rgba(43,35,32,.25);opacity:.8}#envelope .backPocket{position:absolute;left:0;right:0;bottom:0;height:100%;transform:translateZ(3px);z-index:3}#envelope .backPocket:before,#envelope .backPocket:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#ffffff2e,#0000000f);border-top:1px solid rgba(43,35,32,.1)}#envelope .backPocket:before{clip-path:polygon(0% 100%,0 0,52% 50%);background:linear-gradient(180deg,var(--env-pocket-l, #f1e2cc),var(--env-paper-2, #e2c9ab))}#envelope .backPocket:after{clip-path:polygon(100% 100%,48% 50%,100% 0);background:linear-gradient(180deg,var(--env-pocket-r, #f6ead6),var(--env-paper-2, #e7cfb1))}#envelope .backBottom{position:absolute;left:0;right:0;bottom:-1px;height:74%;clip-path:polygon(0 100%,100% 100%,50% 34%);background:linear-gradient(180deg,var(--env-paper-1, #f3e6d2),var(--env-flap-2, #e6cfb2));border-top:1px solid color-mix(in srgb,var(--ink, #2b2320) 18%,transparent);z-index:2;transform:translateZ(2px)}#envelope .letterSlot{position:absolute;left:0;right:0;bottom:0;height:62%;overflow:hidden;z-index:1;transform:none}#envelope .letterSlot #letter{top:auto;left:50%}#envelope .backFlap{position:absolute;left:0;right:0;top:-2px;height:62%;clip-path:polygon(0 0,100% 0,50% 86%);transform-origin:50% 0%;transform:rotateX(0) translateZ(4px);background:linear-gradient(180deg,var(--env-flap-1, #f7eddc),var(--env-flap-2, #e6cfb2));box-shadow:inset 0 -1px #0000001a;z-index:4}#envelope .waxSeal{position:absolute;left:50%;top:56%;width:54px;height:54px;transform:translate(-50%,-50%) translateZ(5px) rotate(10deg);z-index:5;pointer-events:none}#envelope .waxSeal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:60% 40% 55% 45%/55% 45% 60% 40%;clip-path:polygon(50% 0%,62% 6%,75% 4%,86% 14%,96% 30%,92% 45%,100% 58%,92% 70%,90% 86%,74% 96%,58% 92%,50% 100%,40% 92%,28% 96%,12% 86%,8% 70%,0% 58%,8% 45%,4% 30%,14% 14%,25% 4%,38% 6%);background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.25),transparent 55%),radial-gradient(circle at 70% 75%,rgba(0,0,0,.18),transparent 60%),linear-gradient(180deg,var(--seal-1, #8a2e3b),var(--seal-2, #6f2230));box-shadow:0 12px 18px #00000038,inset 0 2px 2px #ffffff2e,inset 0 -6px 10px #00000038}#envelope .waxSeal:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:55% 45% 58% 42%/52% 48% 60% 40%;background:radial-gradient(circle at 35% 30%,rgba(255,235,220,.22),transparent 60%);opacity:.9}#envelope .waxSeal .sealMark{position:absolute;top:8px;right:8px;bottom:8px;left:8px;z-index:2}#envelope .waxSeal .sealLetter{font-family:Cormorant Garamond;font-style:italic;font-weight:700;font-size:44px;fill:var(--seal-ink, rgba(255, 235, 220, .58));stroke:#00000038;stroke-width:.8;paint-order:stroke fill;filter:drop-shadow(0 1px 0 rgba(0,0,0,.25))}#envelope[data-stage=back],#envelope[data-stage=open],#envelope[data-stage=read]{transform:scale(1.35)}#envelope[data-stage=back] .tilt,#envelope[data-stage=open] .tilt,#envelope[data-stage=read] .tilt{animation:none;transform:rotate(0) translateY(0)}#envelope[data-stage=back] .yaw,#envelope[data-stage=open] .yaw,#envelope[data-stage=read] .yaw{transform:rotateY(0)}#envelope[data-stage=back] .spin,#envelope[data-stage=open] .spin,#envelope[data-stage=read] .spin{animation:none}#envelope .letterSlot{overflow:hidden}#envelope[data-stage=open] .letterSlot,#envelope[data-stage=read] .letterSlot{overflow:visible}#envelope .face.back.open .backFlap{transform:rotateX(165deg) translateZ(4px);transition:transform .65s cubic-bezier(.2,.8,.2,1)}#envelope[data-stage=read]{transform:scale(1.1)}#envelope .face.back{isolation:isolate}#envelope .face.back.open .backFlap{z-index:0;transform:rotateX(165deg) translateZ(1px)}#envelope[data-stage=read] .letterSlot{z-index:10;transform:translateZ(20px)}#envelope[data-stage=read] .backFlap{z-index:0}#envelope[data-stage=read] .backPocket{z-index:2}#envelope[data-stage=read] .backBottom{z-index:1}#envelope #letter{position:absolute;left:50%;bottom:10px;top:auto;width:235px;height:310px;z-index:30;pointer-events:none;opacity:0;transform:translate(-50%) translateY(120%) scale(1);transition:transform .7s cubic-bezier(.2,.9,.2,1),opacity .3s ease}#envelope #letter .paper{width:100%;height:100%;position:relative;transform-style:preserve-3d;filter:drop-shadow(0 18px 22px rgba(0,0,0,.28))}#envelope #letter .panel{position:absolute;left:0;right:0;border-radius:0;background:linear-gradient(180deg,var(--letter-paper-1, #fff),var(--letter-paper-2, #f3f1ee));border:1px solid rgba(0,0,0,.06);backface-visibility:hidden}#envelope #letter .top{top:0;height:33%;transform-origin:50% 100%;transform:rotateX(-120deg)}#envelope #letter .mid{top:33%;height:34%;z-index:2;padding:16px 18px;overflow:hidden}#envelope #letter .bot{bottom:0;height:33%;transform-origin:50% 0%;transform:rotateX(120deg)}#envelope #letter .content{color:var(--letter-ink, #2b2320);font-family:Cormorant Garamond,EB Garamond,Georgia,Times New Roman,serif;font-size:14px;line-height:1.45}#envelope #letter .content p{margin:0 0 10px}#envelope #letter .salutation{font-style:italic;opacity:.95}#envelope #letter .signature{margin-top:14px;font-weight:700}#envelope #letter[data-stage=hidden]{opacity:0;transform:translate(-50%,10%) scale(.95)}#envelope #letter[data-stage=peek]{opacity:1;transform:translate(-50%) translateY(35%) scale(.96);transition:transform .7s cubic-bezier(.2,.9,.2,1),opacity .4s ease}#envelope #letter[data-stage=out]{opacity:1;transform:translate(-50%) translateY(-35%) scale(1.02);transition:transform .9s cubic-bezier(.2,.9,.2,1),opacity .4s ease}#envelope #letter[data-stage=unfold]{opacity:1;transform:translate(-50%) translateY(-50%) scale(1.05);transition:transform .9s cubic-bezier(.2,.9,.2,1),opacity .4s ease}#envelope #letter[data-stage=unfold] .top{transform:rotateX(0);transition:transform .65s cubic-bezier(.2,.8,.2,1);transition-delay:.22s}#envelope #letter[data-stage=unfold] .bot{transform:rotateX(0);transition:transform .65s cubic-bezier(.2,.8,.2,1);transition-delay:.42s}#letter[data-stage=read] .top,#letter[data-stage=read] .bot{display:none}#letter[data-stage=read] .mid{top:0;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;padding:22px 20px}#letter .letterClose{pointer-events:auto;position:absolute;right:10px;top:10px;width:36px;height:36px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#ffffffbf;cursor:pointer;z-index:999}#envelope #letter[data-stage=read]{position:fixed;left:50%;top:50%;bottom:auto;width:min(92vw,560px);height:min(86svh,800px);transform:translate(-50%,-50%);opacity:1;pointer-events:auto;z-index:9999}#envelope #letter[data-stage=read] .top,#envelope #letter[data-stage=read] .bot{display:none}#envelope #letter[data-stage=read] .mid{top:0;height:100%;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:22px 20px}#envelope #letter .paper{position:relative}#envelope #letter .letterOrnament{position:absolute;bottom:0;left:var(--ornament-left, auto);right:var(--ornament-right, 0);width:var(--ornament-size, 84px);height:var(--ornament-size, 84px);background:var(--letter-ornament, none) no-repeat center/contain;opacity:var(--ornament-opacity, .95);transform:rotate(var(--ornament-rotate, 0deg));pointer-events:none}#envelope #letter .letterActions{margin-top:18px;padding-top:14px;padding-bottom:6px;position:relative;min-height:calc(var(--ornament-size, 84px) + 8px);display:flex;justify-content:center}#envelope #letter .letterPdfBtn{border:1px solid rgba(0,0,0,.14);background:#ffffffb3;padding:10px 14px;border-radius:999px;cursor:pointer;font-family:inherit}#lettersPage *{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#lettersPage{min-height:100svh;display:grid;place-items:center;padding:24px 16px;overflow:hidden;position:relative;background:var(--page-bg, #0b0d12)}#lettersPage:before{content:"";position:absolute;top:-25vmax;right:-25vmax;bottom:-25vmax;left:-25vmax;z-index:0;pointer-events:none;background-image:var(--page-bokeh, none);background-repeat:var(--bokeh-repeat, no-repeat);background-size:var(--bokeh-size, auto);background-position:var(--bokeh-pos, center);opacity:var(--bokeh-opacity, 1);filter:blur(var(--bokeh-blur, 0px));transform:rotate(var(--bokeh-rotate, 0deg))}#lettersPage:after{content:"";position:absolute;top:-0;right:-0;bottom:-0;left:-0;pointer-events:none;background-image:var(--page-decor, var(--page-bokeh, none));background-repeat:var(--decor-repeat, var(--bokeh-repeat, no-repeat));background-size:var(--decor-size, var(--bokeh-size, auto));background-position:var(--decor-pos, var(--bokeh-pos, center));opacity:var(--decor-opacity, var(--bokeh-opacity, .6));filter:blur(var(--decor-blur, var(--bokeh-blur, 0px)));mix-blend-mode:var(--decor-blend, normal)}#envelope{filter:drop-shadow(0 30px 38px rgba(0,0,0,.55))}@media (max-width: 420px){#envelope[data-stage=front]{transform:scale(1.18)}}#lettersPage{background:var(--page-bg, radial-gradient(1200px 900px at 50% 20%, #141a26, #07090d 70%))}#lettersPage:before{background:var(--page-overlay, none);opacity:var(--page-overlay-opacity, 1);filter:blur(var(--page-overlay-blur, 0px))}.printRoot{min-height:100vh;display:grid;place-items:center;padding:24px;background:#0b0d12}.pdfPage{width:210mm;min-height:297mm;padding:20mm 18mm;color:#2b2320;background:radial-gradient(120% 90% at 30% 20%,rgba(255,255,255,.55),transparent 60%),radial-gradient(120% 90% at 70% 80%,rgba(0,0,0,.12),transparent 62%),linear-gradient(180deg,#f7eddc,#e7cfb1),repeating-linear-gradient(90deg,rgba(120,90,60,.07) 0 1px,transparent 1px 6px);border:1px solid rgba(43,35,32,.18);box-shadow:0 18px 40px #00000059;position:relative;-webkit-print-color-adjust:exact;print-color-adjust:exact}.pdfPage:before{content:"";position:absolute;top:10mm;right:10mm;bottom:10mm;left:10mm;border:1px solid rgba(43,35,32,.18);pointer-events:none}.pdfHeader{margin-bottom:10mm}.pdfMeta{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:12pt;opacity:.9;display:grid;gap:2mm}.pdfMeta .k{letter-spacing:.12em;text-transform:uppercase;opacity:.7}.pdfBody{font-family:Cormorant Garamond,Georgia,Times New Roman,serif;font-size:12.5pt;line-height:1.6}.pdfSalutation{font-style:italic;margin:0 0 6mm}.pdfParagraph{margin:0 0 5mm;text-align:justify}.pdfSignature{margin-top:10mm;font-weight:700;text-align:center}.pdfFooter{margin-top:14mm;display:flex;justify-content:center;opacity:.6}@page{size:A4;margin:0}@media print{.printRoot{padding:0;background:transparent}.pdfPage{box-shadow:none;border:none;min-height:297mm;width:210mm}.pdfPage:before{top:12mm;right:12mm;bottom:12mm;left:12mm}}
