.cv-page{--cv-usable-midpoint: calc((100vh - var(--site-footer-height)) / 2);position:relative;height:100%;min-height:100%;display:flex;flex-direction:column;overflow-x:visible;overflow-y:hidden}@supports (height: 100dvh){.cv-page{--cv-usable-midpoint: calc((100dvh - var(--site-footer-height)) / 2)}}.resume-side-label{position:fixed;left:clamp(-13rem,-12vw,-2.2rem);top:var(--cv-usable-midpoint);transform:translateY(-50%) rotate(270deg);transform-origin:center;z-index:1;color:#f5f5f58c;font-size:clamp(1.8rem,5.8vw,5rem);font-weight:800;letter-spacing:clamp(.9rem,2.2vw,2.2rem);text-transform:uppercase;pointer-events:none;user-select:none}.cv-main{position:relative;z-index:2;flex:1;overflow-y:auto;overflow-x:visible;padding-top:1rem;padding-bottom:calc(var(--site-footer-height) + 4rem);padding-inline:clamp(1rem,4vw,2.25rem);scrollbar-width:none;-ms-overflow-style:none}.cv-main::-webkit-scrollbar{display:none}.timeline{position:relative;width:92vw;max-width:96%;padding-inline:clamp(1.6rem,5vw,3rem);box-sizing:border-box;margin:0 auto}.spine{position:absolute;left:50%;transform:translate(-50%);width:.5vw;border-radius:999vw;overflow:hidden}.spine:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.65) 45%,transparent 90%);transform:translateY(-100%);opacity:0;pointer-events:none}.spine.shimmer:after{opacity:.45;animation:spineShimmer 1.1s linear infinite}.spine.solid{background:var(--text);height:0}.spine.dotted{background:repeating-linear-gradient(180deg,rgba(255,255,255,.5) 0 1vw,transparent 1vw 1.8vw);opacity:0}.spine-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:1.2vw;height:1.2vw;border-radius:50%;background:var(--text);box-shadow:0 0 1vw #ffffff40;pointer-events:none}.spine-dot:after{content:"";position:absolute;inset:-.6vw;border-radius:50%;background:radial-gradient(circle,#ffffff80,#fff0);opacity:0;transform:scale(.7)}.spine-dot.pulse:after{animation:dotHalo .7s ease-out 1}.timeline-items{display:flex;flex-direction:column;gap:9vw;position:relative;z-index:1}.timeline-row{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;justify-items:center;opacity:0;transform:translateY(2vw);transition:opacity .5s ease,transform .5s ease}.timeline-row.visible{opacity:1;transform:translateY(0)}.branch{height:.2vw;background:#ffffff59;position:absolute;top:50%;transform:translateY(-50%);width:15%}.branch:after{content:"";position:absolute;top:50%;right:-.6vw;transform:translateY(-50%);width:1.2vw;height:1.2vw;border-radius:50%;background:var(--bg);border:.2vw solid rgba(255,255,255,.6);box-shadow:0 0 .9vw #00000059}.timeline-row.left .branch{left:50%;transform:translate(-100%,-50%)}.timeline-row.left .branch:after{right:-.6vw}.timeline-row.left .card{grid-column:1 / 2;justify-self:center;transform:translate(-25%)}.timeline-row.right .branch{left:50%;transform:translateY(-50%)}.timeline-row.right .branch:after{right:auto;left:-.6vw}.timeline-row.right .card{grid-column:2 / 3;justify-self:center;transform:translate(25%)}.timeline-row:first-of-type .branch:after{background:#fff;border:.2vw solid rgba(255,255,255,1);box-shadow:0 0 .9vw #00000059}.card{width:clamp(5.5rem,26vw,14rem);height:clamp(5.5rem,26vw,14rem);background:transparent;border:none;padding:0;cursor:pointer;perspective:100vw;box-shadow:none}.card-inner{position:relative;width:100%;height:100%;border-radius:50%;border:none;overflow:hidden;transform-style:preserve-3d;transition:transform .4s ease;box-shadow:0 1vw 9vw #000000a6;animation:card-glow 3.4s ease-in-out infinite}.card .face{position:absolute;inset:0;backface-visibility:hidden;display:grid;place-items:center;color:var(--text);border-radius:50%}.card .front{background-size:cover;background-position:center;filter:grayscale(.1)}.card .back{background:#0006;transform:rotateY(180deg);padding:1.3vw;text-align:center}.label{font-weight:800;letter-spacing:.05vw}.small{font-size:.9rem}.floating-icons{--quick-tile-size: clamp(4.06rem, 7vw, 5.31rem);--quick-tile-gap: .75rem;position:fixed;top:calc(var(--cv-usable-midpoint) - (2 * (var(--quick-tile-size) + var(--quick-tile-gap)) + (var(--quick-tile-size) / 2)));bottom:auto;right:clamp(1rem,3vw,1.8rem);left:auto;display:grid;gap:var(--quick-tile-gap);z-index:13}.icon-card{width:var(--quick-tile-size);height:var(--quick-tile-size);border:clamp(.094rem,.14vw,.19rem) solid rgba(255,255,255,.35);border-radius:clamp(.7rem,1.18vw,1.18rem);background:#ffffff08;display:grid;place-items:center;text-decoration:none;color:var(--text);overflow:hidden;perspective:70vw}.icon-flip{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .45s ease}.icon-card:hover .icon-flip,.icon-card:focus-visible .icon-flip{transform:rotateY(180deg)}.icon-face{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;text-align:center;font-weight:700;font-size:clamp(.75rem,2vw,1rem);line-height:1.2;word-break:break-word;white-space:normal;background:#00000059}.icon-face svg{width:clamp(1.4rem,4vw,2.6rem);height:clamp(1.4rem,4vw,2.6rem)}.icon-front{background:transparent}.icon-back{transform:rotateY(180deg)}.mobile-nav{position:fixed;top:1rem;right:1rem;display:none;z-index:14;width:50px;height:50px;overflow:hidden;border:.5px solid rgba(245,245,245,.55);border-radius:10px;background:var(--surface);box-shadow:none;transition:width .28s ease,height .28s ease,border-radius .28s ease,background .28s ease,border-color .28s ease,box-shadow .28s ease}.mobile-nav.open{width:min(285px,calc(100vw - 2rem));height:min(250px,calc(100vh - 2rem));border-radius:14px;border-color:#f5f5f58c;background:var(--surface);box-shadow:none}.mobile-nav-toggle{position:absolute;top:0;right:0;width:50px;height:50px;border:none;border-radius:0;background:transparent;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;z-index:2;padding:0}.hamburger-line{width:18px;height:2px;border-radius:999px;background:currentColor;transform-origin:center;transition:transform .25s ease,opacity .2s ease}.mobile-nav.open .line-1{transform:translateY(6px) rotate(45deg)}.mobile-nav.open .line-2{opacity:0}.mobile-nav.open .line-3{transform:translateY(-6px) rotate(-45deg)}.mobile-nav-panel{position:absolute;inset:8px 58px 8px 8px;padding:0;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .2s ease .08s,transform .2s ease .08s;display:grid;gap:.35rem;align-content:start;overflow-y:auto;scrollbar-width:none}.mobile-nav-panel::-webkit-scrollbar{display:none}.mobile-nav.open .mobile-nav-panel{opacity:1;transform:translateY(0);pointer-events:auto}.mobile-nav-item{display:inline-flex;align-items:center;gap:.55rem;padding:.5rem .65rem;border-radius:8px;color:var(--text);text-decoration:none;border:1px solid rgba(255,255,255,.25);background:#ffffff0f;font-size:.9rem}.mobile-nav-item:hover{background:#ffffff24}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:none;align-items:center;justify-content:center;z-index:12;padding:1.3vw}.modal-backdrop.active{display:flex}.modal{width:min(820px,92vw);max-height:80vh;overflow:hidden;background:#232528fa;border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:1.5rem 1.8rem 2rem;box-shadow:0 30px 80px #0000008c;color:var(--text);display:flex;flex-direction:column;position:relative}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem}.modal-title h3{margin:0}.modal-close{width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:transparent;color:var(--text);font-weight:600;font-size:1rem;display:inline-flex;align-items:center;justify-content:center;line-height:1;cursor:pointer;transition:border-color .2s ease,color .2s ease,box-shadow .2s ease,background .2s ease}.modal-close:hover,.modal-close:focus-visible,.modal-close:focus,.modal-close:active{border-color:#f87171e6;color:#f87171;background:#f8717126;box-shadow:0 0 12px #f8717159}.modal-body{flex:1;overflow-y:auto;line-height:1.7;font-size:.95rem;color:var(--text);scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2.5rem}.modal-body::-webkit-scrollbar{display:none}.modal-scroll{position:absolute;left:50%;bottom:.8rem;transform:translate(-50%);width:56px;height:56px;border-radius:0;border:none;background:transparent;color:var(--text);font-weight:700;font-size:1.75rem;letter-spacing:.08em;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;text-shadow:0 1px 2px rgba(0,0,0,.95),0 0 6px rgba(0,0,0,.75)}.modal-scroll.visible{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(-4px);animation:scrollHintPulse 1.4s ease-in-out infinite}@keyframes scrollHintPulse{0%{transform:translate(-50%) translateY(-4px) scale(1)}50%{transform:translate(-50%) translateY(-6px) scale(1.15)}to{transform:translate(-50%) translateY(-4px) scale(1)}}@media(hover:none)and (pointer:coarse){.modal-close{background:transparent;color:#f87171;border-color:#f87171;box-shadow:0 0 12px #f8717159}}@keyframes card-glow{0%{box-shadow:0 1vw 9vw #ffffff59}50%{box-shadow:0 1vw 11vw #ffffff80,0 0 1.6vw #ffffff4d}to{box-shadow:0 1vw 9vw #ffffff59}}@keyframes spineShimmer{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes dotHalo{0%{opacity:0;transform:scale(.5)}40%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}@media(max-width:90vmin){.timeline-row{grid-template-columns:1fr;justify-items:center}.timeline-row.left .branch,.timeline-row.right .branch{position:relative;order:-1;justify-self:center;top:auto;left:auto;transform:rotate(90deg);width:9vw}.branch:after{display:none}.timeline-row.left .card,.timeline-row.right .card{justify-self:center;transform:none;width:clamp(7rem,70vw,12rem);height:clamp(7rem,70vw,12rem)}.spine{left:50%}}@media(max-width:1500px){.floating-icons{display:none}.mobile-nav{display:block}}body.cv-body{overflow:hidden}body.cv-body .shell{width:100vw;max-width:100vw;margin:0;padding:0}body.cv-body .page{min-height:100vh;height:100vh}body.cv-body .content{height:calc(100vh - var(--site-footer-height));padding:0;overflow:hidden}body.cv-body .site-footer{position:fixed;inset:auto 0 0;min-height:var(--site-footer-height);display:flex;align-items:center;background:var(--surface);box-shadow:0 -4px 16px #00000059;z-index:12}
