.navbar{z-index:1000;transition:all .4s var(--ease-out);background:0 0;padding:1.2rem 2rem;position:fixed;top:0;left:0;right:0}.navbar.scrolled{background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-card);border-bottom:1px solid var(--border-subtle);padding:.8rem 2rem}.navbar-inner{justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;display:flex}.navbar-logo{cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:0;transition:opacity .3s;display:flex}.navbar-logo:hover{opacity:.85}.logo-text{background:var(--logo-tile);width:40px;height:40px;color:var(--logo-ink);font-family:var(--font-display);transition:all .3s var(--ease-out);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;line-height:1;display:inline-flex}.navbar-logo:hover .logo-text,.navbar-logo:focus-visible .logo-text{box-shadow:0 4px 14px rgba(var(--gold-rgb), .45)}.logo-full{color:var(--text-secondary);letter-spacing:.15em;text-transform:uppercase;font-size:.85rem;font-weight:300}.navbar-links{align-items:center;gap:.5rem;display:flex}.nav-link{color:var(--text-secondary);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-family:inherit;font-size:.85rem;transition:color .3s;position:relative}.nav-link:after{content:"";background:var(--gold);width:0;height:1px;transition:width .3s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.nav-link:hover,.nav-link.active,.nav-link:focus-visible{color:var(--gold-ink)}.nav-link.active:after,.nav-link:hover:after,.nav-link:focus-visible:after{width:60%}.lang-toggle{border:1px solid rgba(var(--gold-rgb), .5);color:var(--gold-ink);letter-spacing:.08em;cursor:pointer;background:0 0;margin-inline-start:1rem;padding:.4rem 1.2rem;font-family:inherit;font-size:.8rem;transition:all .3s}.lang-toggle:hover,.lang-toggle:focus-visible{background:var(--gold);color:var(--on-gold)}.hamburger{cursor:pointer;z-index:1001;background:0 0;border:none;flex-direction:column;gap:5px;padding:.5rem;display:none}.hamburger span{background:var(--text-primary);width:24px;height:2px;transition:all .3s;display:block}.hamburger.open span:first-child{transform:rotate(45deg)translate(5px,5px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg)translate(5px,-5px)}@media (width<=768px){.hamburger{display:flex}.navbar-links{background:var(--navbar-menu-bg);opacity:0;pointer-events:none;flex-direction:column;justify-content:center;gap:1.5rem;transition:opacity .3s;position:fixed;inset:0}.navbar-links.open{opacity:1;pointer-events:all}.nav-link{font-size:1.2rem}.logo-full{display:none}}.hero{justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.hero-bg{will-change:transform;filter:var(--hero-bg-filter);background:url(https://images.unsplash.com/photo-1487958449943-2429e8be8625?w=1920&q=80) 50%/cover no-repeat;position:absolute;inset:-50px}.hero.visible .hero-bg{animation:15s ease-out forwards heroBgZoom}@keyframes heroBgZoom{0%{transform:scale(1.15)}to{transform:scale(1.05)}}.hero-overlay{background:var(--hero-scrim);position:absolute;inset:0}.hero-grid-lines{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.grid-line{background:rgba(var(--gold-rgb), .18);position:absolute}.grid-line-h1{height:1px;animation:8s ease-in-out infinite alternate gridSlideH;top:30%;left:0;right:0}.grid-line-h2{height:1px;animation:10s ease-in-out 2s infinite alternate gridSlideH;top:70%;left:0;right:0}.grid-line-v1{width:1px;animation:9s ease-in-out 1s infinite alternate gridSlideV;top:0;bottom:0;left:25%}.grid-line-v2{width:1px;animation:11s ease-in-out 3s infinite alternate gridSlideV;top:0;bottom:0;left:75%}@keyframes gridSlideH{0%{opacity:0;transform:scaleX(0)}50%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}@keyframes gridSlideV{0%{opacity:0;transform:scaleY(0)}50%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.hero-content{z-index:2;opacity:0;will-change:transform;align-items:center;gap:5rem;width:100%;max-width:1200px;transition:transform .15s ease-out;animation:1.2s cubic-bezier(.16,1,.3,1) .3s forwards heroFadeIn;display:flex;position:relative}@keyframes heroFadeIn{to{opacity:1}}.hero-photo-wrapper{flex-shrink:0;position:relative}.hero-photo{z-index:1;width:280px;height:350px;position:relative;overflow:hidden}.hero-photo img{object-fit:cover;filter:grayscale(30%)contrast(1.05);width:100%;height:100%;transition:all .6s cubic-bezier(.16,1,.3,1)}.hero-photo-wrapper:hover img{filter:grayscale(0%)contrast();transform:scale(1.05)}.hero-photo-frame{border:1px solid rgba(var(--gold-rgb), .55);z-index:0;width:280px;height:350px;transition:all .4s;position:absolute;top:15px}.hero-photo-wrapper:hover .hero-photo-frame{top:20px}[dir=ltr] .hero-photo-frame{left:15px}[dir=rtl] .hero-photo-frame{right:15px}[dir=ltr] .hero-photo-wrapper:hover .hero-photo-frame{left:20px}[dir=rtl] .hero-photo-wrapper:hover .hero-photo-frame{right:20px}.hero-text{flex:1}.hero-greeting{color:var(--gold-ink);letter-spacing:.2em;text-transform:uppercase;opacity:0;margin-bottom:.5rem;font-size:1rem;font-weight:300;animation:.6s .5s forwards fadeUp}.hero-name{font-family:var(--font-sans);color:var(--text-primary);margin-bottom:1rem;font-size:4rem;font-weight:700;line-height:1.1}.name-char{opacity:0;animation:.5s cubic-bezier(.16,1,.3,1) forwards charReveal;display:inline-block;transform:translateY(30px)}@keyframes charReveal{to{opacity:1;transform:translateY(0)}}.hero-divider{background:var(--gold);width:0;height:2px;margin-bottom:1.5rem;animation:.8s cubic-bezier(.16,1,.3,1) 1s forwards dividerGrow}@keyframes dividerGrow{to{width:60px}}.hero-title{color:var(--text-secondary);letter-spacing:.1em;opacity:0;margin-bottom:1.5rem;font-size:1.3rem;font-weight:300;animation:.6s 1.1s forwards fadeUp}.hero-subtitle{color:var(--text-muted);opacity:0;max-width:500px;margin-bottom:2.5rem;font-size:1.05rem;font-weight:300;line-height:1.8;animation:.6s 1.3s forwards fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.hero-cta{border:1px solid var(--gold);color:var(--gold-ink);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;opacity:0;background:0 0;align-items:center;gap:.75rem;padding:.9rem 2.5rem;font-family:inherit;font-size:.85rem;transition:all .4s;animation:.6s 1.5s forwards fadeUp;display:inline-flex;position:relative;overflow:hidden}.hero-cta:hover{background:var(--gold);color:var(--on-gold);box-shadow:0 0 30px rgba(var(--gold-rgb), .25)}.cta-shine{background:linear-gradient(90deg,#0000,#ffffff26,#0000);width:100%;height:100%;transition:none;position:absolute;top:0;left:-100%}.hero-cta:hover .cta-shine{animation:.6s forwards ctaShine}@keyframes ctaShine{to{left:100%}}.cta-arrow{transition:transform .3s}[dir=rtl] .cta-arrow{transform:rotate(180deg)}.hero-cta:hover .cta-arrow{transform:translate(4px)}[dir=rtl] .hero-cta:hover .cta-arrow{transform:rotate(180deg)translate(4px)}.scroll-indicator{z-index:2;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:.75rem;padding:.5rem;transition:opacity .3s;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-indicator:hover{opacity:.7}.scroll-mouse{border:1.5px solid rgba(var(--gold-rgb), .55);border-radius:11px;justify-content:center;width:22px;height:34px;padding-top:6px;display:flex}.scroll-wheel{background:var(--gold);border-radius:1px;width:2px;height:8px;animation:1.8s ease-in-out infinite wheelScroll}@keyframes wheelScroll{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}.scroll-line{background:linear-gradient(to bottom, rgba(var(--gold-rgb), .45), transparent);width:1px;height:30px}@media (width<=768px){.hero-content{text-align:center;flex-direction:column;gap:3rem}.hero-photo,.hero-photo-frame{width:200px;height:250px}.hero-name{font-size:2.5rem}.hero-divider,.hero-subtitle{margin-inline:auto}.hero-grid-lines{display:none}}.lightbox{z-index:5000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:lightboxIn .28s var(--ease-out) both;direction:ltr;background:#000000ed;justify-content:center;align-items:center;padding:4.5rem 5rem 5.5rem;display:flex;position:fixed;inset:0}@keyframes lightboxIn{0%{opacity:0}to{opacity:1}}.lightbox-stage{cursor:zoom-in;touch-action:none;flex:auto;justify-content:center;align-items:center;width:100%;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.lightbox-stage.is-zoomed{cursor:grab}.lightbox-stage.is-dragging{cursor:grabbing}.lightbox-image{object-fit:contain;transform-origin:50%;will-change:transform;-webkit-user-select:none;user-select:none;max-width:100%;max-height:100%;animation:lightboxZoom .32s var(--ease-out) both;background:#fff;box-shadow:0 30px 90px #0009}.lightbox-stage:not(.is-dragging) .lightbox-image{transition:transform .22s var(--ease-out)}@keyframes lightboxZoom{0%{opacity:0}to{opacity:1}}.lightbox-close,.lightbox-nav{color:#fff;cursor:pointer;transition:all .25s var(--ease-out);background:#ffffff12;border:1px solid #ffffff2e;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.lightbox-close{width:44px;height:44px;top:1.25rem;right:1.25rem}.lightbox-nav{width:52px;height:52px;top:50%;transform:translateY(-50%)}.lightbox-prev{left:1.25rem}.lightbox-next{right:1.25rem}.lightbox-close:hover,.lightbox-close:focus-visible{background:var(--gold);border-color:var(--gold);color:#0f0f0f}.lightbox-nav:hover,.lightbox-nav:focus-visible{background:var(--gold);border-color:var(--gold);color:#0f0f0f;transform:translateY(-50%)scale(1.08)}.lightbox-bar{color:#fff9;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:1rem;font-size:.78rem;display:flex;position:absolute;bottom:1.1rem;left:50%;transform:translate(-50%)}.lightbox-counter{font-family:var(--font-sans);letter-spacing:.05em;color:var(--gold);text-transform:none;font-size:1rem}.lightbox-zoom{border-left:1px solid #ffffff2e;align-items:center;gap:.35rem;padding-left:.9rem;display:flex}.lightbox-zoom button{color:#fff;min-width:30px;height:30px;font:inherit;letter-spacing:.04em;text-transform:none;cursor:pointer;transition:all .2s var(--ease-out);background:#ffffff12;border:1px solid #ffffff2e;border-radius:15px;justify-content:center;align-items:center;padding:0 .5rem;font-size:.72rem;display:flex}.lightbox-zoom-level{font-variant-numeric:tabular-nums;min-width:54px!important}.lightbox-zoom button:hover:not(:disabled),.lightbox-zoom button:focus-visible:not(:disabled){background:var(--gold);border-color:var(--gold);color:#0f0f0f}.lightbox-zoom button:disabled{opacity:.35;cursor:default}@media (width<=768px){.lightbox{padding:4rem .75rem 5rem}.lightbox-nav{width:40px;height:40px}.lightbox-prev{left:.5rem}.lightbox-next{right:.5rem}.lightbox-bar{gap:.6rem;font-size:.68rem}.lightbox-label{display:none}}.gallery-section{background:var(--bg-dark);flex-direction:column;align-items:center;min-height:100vh;padding:6rem 2rem 3rem;display:flex;position:relative}.section-header{text-align:center;margin-bottom:2.5rem}.section-title{font-family:var(--font-sans);color:var(--text-primary);margin-bottom:.75rem;font-size:3rem;font-weight:400}.section-subtitle{color:var(--text-muted);letter-spacing:.1em;font-size:.95rem;font-weight:300}.title-accent{background:var(--gold);width:40px;height:2px;margin:1.5rem auto 0}.book-container{perspective:2800px;width:100%;max-width:min(1680px,90vw);margin-bottom:2rem;position:relative}.book-glow{z-index:13;pointer-events:none;transition:background .15s;position:absolute;inset:0}.book{width:100%;transform-style:preserve-3d;direction:ltr;display:flex;position:relative}.book:after{content:"";pointer-events:none;box-shadow:var(--shadow-book);transition:inset .6s var(--ease-out);position:absolute;inset:0}.page-empty{visibility:hidden}.book-closed-cover .book-edge{left:50%}.book-closed-back .book-edge{right:50%}.book-closed-cover:after{inset:0 0 0 50%}.book-closed-back:after{inset:0 50% 0 0}.book-closed-cover .page-stack-left,.book-closed-back .page-stack-right{display:none}.book-edge{z-index:11;height:6px;transition:left .6s var(--ease-out), right .6s var(--ease-out);background:var(--book-edge);border-radius:2px;position:absolute;left:-4px;right:-4px}.book-edge-top{box-shadow:var(--book-edge-shadow);top:-6px}.book-edge-bottom{box-shadow:var(--book-edge-shadow);bottom:-6px}.page-stack{z-index:5;width:10px;position:absolute;top:2px;bottom:2px}.page-stack-left{left:-10px}.page-stack-right{right:-10px}.stack-line{background:linear-gradient(to bottom, transparent, var(--book-stack-line), transparent);width:1px;position:absolute;top:0;bottom:0}.book-spine{z-index:12;background:var(--book-spine);width:8px;box-shadow:var(--book-spine-shadow), inset 0 0 3px rgba(var(--book-gold-rgb), .12);position:absolute;top:-6px;bottom:-6px;left:50%;transform:translate(-50%)}.book-page{aspect-ratio:1905/1348;flex:1;position:relative;overflow:hidden}.page-inner{background:var(--book-page);border:1px solid var(--book-border);height:100%}.page-left .page-inner{border-right:none}.page-right .page-inner{border-left:none}.page-fold-shadow{z-index:2;pointer-events:none;width:40px;position:absolute;top:0;bottom:0}.page-fold-left{background:linear-gradient(to right, transparent, var(--book-gutter));right:0}.page-fold-right{background:linear-gradient(to left, transparent, var(--book-gutter));left:0}.page-image-container{background:#fff;height:100%;position:relative;overflow:hidden}.page-zoom{width:100%;font:inherit;cursor:zoom-in;border:none;padding:0;display:block}.zoom-hint{z-index:3;color:#fff;opacity:0;width:34px;height:34px;transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;background:#0f0f0f8c;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:.85rem;right:.85rem;transform:scale(.9)}.page-zoom:hover .zoom-hint,.page-zoom:focus-visible .zoom-hint{opacity:1;transform:scale(1)}.page-image{object-fit:contain;width:100%;height:100%}.image-overlay{background:linear-gradient(#0000,#000000b3);justify-content:space-between;align-items:flex-end;padding:2rem;display:flex;position:absolute;bottom:0;left:0;right:0}.project-category,.project-year{color:#fffc;letter-spacing:.15em;text-transform:uppercase;font-size:.75rem}.page-content{direction:var(--page-dir,ltr);justify-content:center;align-items:center;padding:3rem;display:flex}[dir=rtl] .page-content{--page-dir:rtl}.project-info{max-width:380px}.book-page .project-info{animation:.5s cubic-bezier(.16,1,.3,1) .1s both contentReveal}@keyframes contentReveal{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.project-number{font-family:var(--font-sans);color:var(--book-number);margin-bottom:.5rem;font-size:4rem;font-weight:700;line-height:1;display:block}.project-title{font-family:var(--font-sans);color:var(--book-ink);margin-bottom:1rem;font-size:1.8rem;font-weight:400;line-height:1.3}.project-divider{background:var(--book-gold);width:30px;height:1px;margin-bottom:1.5rem}.project-description{color:var(--book-ink-soft);margin-bottom:1.25rem;font-size:.92rem;font-weight:300;line-height:1.8}.project-details{color:var(--book-ink-faint);margin-bottom:2rem;font-size:.82rem;font-style:italic;font-weight:300;line-height:1.7}.project-meta{color:var(--book-gold);letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:.75rem;font-size:.75rem;display:flex}.meta-dot{opacity:.5}.flip-page{z-index:20;width:50%;transform-style:preserve-3d;pointer-events:none;position:absolute;top:0;bottom:0}.flip-page.flip-next{transform-origin:0;left:50%}.flip-page.flip-next.first-half{animation:.6s ease-in-out forwards foldNextFirstHalf}.flip-page.flip-next.second-half{animation:.6s ease-in-out forwards foldNextSecondHalf}.flip-page.flip-prev{transform-origin:100%;left:0}.flip-page.flip-prev.first-half{animation:.6s ease-in-out forwards foldPrevFirstHalf}.flip-page.flip-prev.second-half{animation:.6s ease-in-out forwards foldPrevSecondHalf}.fold-layers{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0}.fold-layer{background:var(--book-fold);transform:translateZ(calc(var(--i) * -.5px));border-top:1px solid var(--book-border);border-bottom:1px solid var(--book-border);position:absolute;inset:0}.flip-face{backface-visibility:hidden;position:absolute;inset:0;overflow:hidden}.flip-front{z-index:2}.flip-back{z-index:1;transform:rotateY(180deg)}.page-paper{width:100%;height:100%;position:relative;overflow:hidden}.page-paper .page-inner{height:100%}.page-light{pointer-events:none;z-index:5;position:absolute;inset:0}.flip-next.first-half .flip-front .page-light{animation:.6s forwards lightSweepFront}.flip-next.second-half .flip-back .page-light{animation:.6s forwards lightSweepBack}.flip-prev.first-half .flip-front .page-light{animation:.6s forwards lightSweepFrontPrev}.flip-prev.second-half .flip-back .page-light{animation:.6s forwards lightSweepBackPrev}@keyframes lightSweepFront{0%{background:linear-gradient(270deg,#0000,#0000)}50%{background:linear-gradient(270deg,#fff5dc0f,#00000026)}to{background:linear-gradient(270deg,#fff5dc08,#00000059)}}@keyframes lightSweepBack{0%{background:linear-gradient(90deg,#00000059,#fff5dc08)}50%{background:linear-gradient(90deg,#00000026,#fff5dc0f)}to{background:linear-gradient(90deg,#0000,#0000)}}@keyframes lightSweepFrontPrev{0%{background:linear-gradient(90deg,#0000,#0000)}50%{background:linear-gradient(90deg,#fff5dc0f,#00000026)}to{background:linear-gradient(90deg,#fff5dc08,#00000059)}}@keyframes lightSweepBackPrev{0%{background:linear-gradient(270deg,#00000059,#fff5dc08)}50%{background:linear-gradient(270deg,#00000026,#fff5dc0f)}to{background:linear-gradient(270deg,#0000,#0000)}}.fold-crease{z-index:10;opacity:0;width:2px;position:absolute;top:0;bottom:0}.flip-next .fold-crease{background:linear-gradient(to bottom, transparent 5%, rgba(var(--book-crease-rgb),.1) 20%, rgba(var(--book-crease-rgb),.18) 50%, rgba(var(--book-crease-rgb),.1) 80%, transparent 95%);left:0;box-shadow:1px 0 4px #0000004d}.flip-prev .fold-crease{background:linear-gradient(to bottom, transparent 5%, rgba(var(--book-crease-rgb),.1) 20%, rgba(var(--book-crease-rgb),.18) 50%, rgba(var(--book-crease-rgb),.1) 80%, transparent 95%);right:0;box-shadow:-1px 0 4px #0000004d}.flip-page.first-half .fold-crease{animation:.6s forwards creaseIn}.flip-page.second-half .fold-crease{animation:.6s forwards creaseOut}@keyframes creaseIn{0%{opacity:0}30%{opacity:1}to{opacity:1}}@keyframes creaseOut{0%{opacity:1}70%{opacity:1}to{opacity:0}}.cast-shadow{z-index:0;pointer-events:none;opacity:0;width:120px;position:absolute;top:-5px;bottom:-5px}.flip-next .cast-shadow{background:linear-gradient(270deg,#00000073,#00000026 40%,#0000);left:-120px}.flip-prev .cast-shadow{background:linear-gradient(90deg,#00000073,#00000026 40%,#0000);right:-120px}.flip-page.first-half .cast-shadow{animation:.6s ease-in-out forwards shadowGrow}.flip-page.second-half .cast-shadow{animation:.6s ease-in-out forwards shadowShrink}@keyframes shadowGrow{0%{opacity:0;width:40px}40%{opacity:.6}to{opacity:1;width:120px}}@keyframes shadowShrink{0%{opacity:1;width:120px}60%{opacity:.6}to{opacity:0;width:40px}}@keyframes foldNextFirstHalf{0%{transform:rotateY(0)scale(1);box-shadow:-2px 0 5px #0000001a}40%{transform:rotateY(-35deg)scale(1.01)}70%{transform:rotateY(-65deg)scale(1.02);box-shadow:-20px 0 40px #00000059}to{transform:rotateY(-90deg)scale(1.02);box-shadow:-25px 0 50px #0006}}@keyframes foldNextSecondHalf{0%{transform:rotateY(-90deg)scale(1.02);box-shadow:-25px 0 50px #0006}30%{transform:rotateY(-115deg)scale(1.02)}60%{transform:rotateY(-145deg)scale(1.01);box-shadow:-15px 0 30px #00000040}85%{transform:rotateY(-175deg)scale(1)}to{transform:rotateY(-180deg)scale(1);box-shadow:-2px 0 5px #0000001a}}@keyframes foldPrevFirstHalf{0%{transform:rotateY(0)scale(1);box-shadow:2px 0 5px #0000001a}40%{transform:rotateY(35deg)scale(1.01)}70%{transform:rotateY(65deg)scale(1.02);box-shadow:20px 0 40px #00000059}to{transform:rotateY(90deg)scale(1.02);box-shadow:25px 0 50px #0006}}@keyframes foldPrevSecondHalf{0%{transform:rotateY(90deg)scale(1.02);box-shadow:25px 0 50px #0006}30%{transform:rotateY(115deg)scale(1.02)}60%{transform:rotateY(145deg)scale(1.01);box-shadow:15px 0 30px #00000040}85%{transform:rotateY(175deg)scale(1)}to{transform:rotateY(180deg)scale(1);box-shadow:2px 0 5px #0000001a}}.page-turn-btn{background:var(--bg-card);border:1.5px solid var(--gold);width:54px;height:54px;color:var(--gold-ink);cursor:pointer;z-index:30;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 18px #0003}.page-turn-btn:hover:not(:disabled),.page-turn-btn:focus-visible:not(:disabled){background:var(--gold);color:var(--on-gold);box-shadow:0 6px 26px rgba(var(--gold-rgb), .5);transform:translateY(-50%)scale(1.1)}.page-turn-btn:disabled{opacity:.4;box-shadow:none;cursor:not-allowed;pointer-events:auto}.prev-btn{left:-62px}.next-btn{right:-62px}@media (width<=1160px){.prev-btn{left:10px}.next-btn{right:10px}}.page-indicators{align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.page-current{font-family:var(--font-sans);color:var(--gold-ink);font-size:1.5rem}.page-separator{color:var(--text-faint);font-size:.9rem}.page-total{font-family:var(--font-sans);color:var(--text-faint);font-size:1.5rem}.page-progress{background:var(--border-strong);width:120px;height:1px;margin-inline-start:1rem;overflow:hidden}.page-progress-bar{background:var(--gold);height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.thumbnail-nav{justify-content:center;gap:.75rem;display:flex}.thumbnail{border:1px solid var(--border-strong);cursor:pointer;opacity:.4;background:0 0;width:76px;height:54px;padding:0;transition:all .3s;overflow:hidden}.thumbnail.active{border-color:var(--gold);opacity:1}.thumbnail:hover{opacity:.8}.thumbnail img{object-fit:cover;width:100%;height:100%}@media (width<=900px){.book-container{max-width:100%}.prev-btn{left:10px}.next-btn{right:10px}}@media (width<=768px){.gallery-section{padding:6rem 1rem 3rem}.section-title{font-size:2rem}.book{flex-direction:column;min-height:auto}.book-closed-cover .book-edge,.book-closed-back .book-edge{left:-4px;right:-4px}.book-closed-cover:after,.book-closed-back:after{inset:0}.page-empty{display:none}.book-spine{width:100%;height:4px;inset:auto 0 50%;transform:none;box-shadow:0 -2px 8px #0000004d,0 2px 8px #0000004d}.book-edge,.page-stack{display:none}.page-left .page-inner{border-right:1px solid var(--book-border);border-bottom:none}.page-right .page-inner{border-left:1px solid var(--book-border);border-top:none}.page-content{padding:2rem 1.5rem}.project-number{font-size:2.5rem}.project-title{font-size:1.4rem}.page-turn-btn{width:40px;height:40px;top:35%}.thumbnail{width:40px;height:30px}}.spin-section{background:var(--bg-section);flex-direction:column;align-items:center;padding:6rem 2rem 5rem;display:flex}.spin-grid{grid-template-columns:repeat(2,1fr);gap:2.5rem;width:100%;max-width:min(1680px,92vw);display:grid}.spin-grid-single{grid-template-columns:1fr;max-width:min(900px,92vw)}.spin-card{margin:0}.spin-frame{aspect-ratio:4/3;background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-rest);position:relative;overflow:hidden}.spin-frame iframe{border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.spin-hint{color:var(--text-faint);letter-spacing:.15em;text-transform:uppercase;margin-top:1.75rem;font-size:.75rem}@media (width<=900px){.spin-grid{grid-template-columns:1fr;gap:2rem}}@media (width<=768px){.spin-section{padding:4rem 1rem 3.5rem}.spin-frame{aspect-ratio:1}}.about-section{background:var(--bg-section);padding:8rem 2rem;position:relative;overflow:hidden}.about-spotlight{pointer-events:none;z-index:0;transition:background .3s;position:absolute;inset:0}.about-container{z-index:1;opacity:0;align-items:flex-start;gap:5rem;max-width:1200px;margin:0 auto;transition:all 1s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(40px)}.about-section.visible .about-container{opacity:1;transform:translateY(0)}.about-image-col{flex:0 0 380px;position:sticky;top:120px}.about-image-wrapper{margin-bottom:2.5rem;position:relative;overflow:hidden}.about-image{object-fit:cover;filter:grayscale(20%);width:100%;height:480px;transition:all .6s cubic-bezier(.16,1,.3,1)}.about-image-wrapper:hover .about-image{filter:grayscale(0%);transform:scale(1.03)}.about-image-accent{border:1px solid rgba(var(--gold-rgb), .4);z-index:-1;width:100%;height:100%;transition:all .4s;position:absolute;bottom:-15px}.about-image-wrapper:hover .about-image-accent{bottom:-20px}[dir=ltr] .about-image-accent{right:-15px}[dir=rtl] .about-image-accent{left:-15px}[dir=ltr] .about-image-wrapper:hover .about-image-accent{right:-20px}[dir=rtl] .about-image-wrapper:hover .about-image-accent{left:-20px}.about-stats{gap:2rem;padding-top:1rem;display:flex}.stat{flex-direction:column;align-items:center;gap:.25rem;display:flex}.stat-number{font-family:var(--font-sans);color:var(--gold-ink);font-size:2rem;font-weight:400}.stat-label{color:var(--text-faint);letter-spacing:.15em;text-transform:uppercase;font-size:.7rem}.about-content-col{flex:1}.about-content-col .section-title{text-align:start}.title-accent.left-aligned{margin:1.5rem 0;margin-inline-start:0}.about-bio{margin-bottom:3rem}.bio-paragraph{color:var(--text-muted);opacity:0;margin-bottom:1.25rem;font-size:.95rem;font-weight:300;line-height:1.9;transform:translateY(15px)}.about-section.visible .bio-paragraph{animation:.6s cubic-bezier(.16,1,.3,1) forwards staggerFadeUp}@keyframes staggerFadeUp{to{opacity:1;transform:translateY(0)}}.about-details{border-top:1px solid var(--border-subtle);flex-wrap:wrap;gap:2.5rem 3rem;padding-top:2rem;display:flex}.detail-block{flex:180px}.detail-block-wide{flex:1.6 280px}.detail-title{font-family:var(--font-sans);color:var(--gold-ink);margin-bottom:1rem;font-size:1.1rem;font-weight:400}.detail-item{color:var(--text-muted);font-size:.85rem;font-weight:300;line-height:1.8}.expertise-tags{flex-wrap:wrap;gap:.5rem;display:flex}.expertise-tag{border:1px solid var(--border-strong);color:var(--text-muted);letter-spacing:.05em;cursor:default;opacity:0;padding:.35rem .9rem;font-size:.75rem;transition:all .3s;transform:translateY(10px)scale(.95)}.about-section.visible .expertise-tag{animation:.4s cubic-bezier(.16,1,.3,1) forwards tagReveal}@keyframes tagReveal{to{opacity:1;transform:translateY(0)scale(1)}}.expertise-tag:hover{border-color:var(--gold);color:var(--gold-ink);background:rgba(var(--gold-rgb), .1);box-shadow:0 4px 12px rgba(var(--gold-rgb), .18);transform:translateY(-2px)scale(1.05)}.resume-btn{border:1px solid var(--gold);color:var(--gold-ink);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .4s var(--ease-out);background:0 0;align-items:center;gap:.75rem;margin-top:2.5rem;padding:.85rem 2rem;font-family:inherit;font-size:.85rem;display:inline-flex}.resume-btn:hover,.resume-btn:focus-visible{background:var(--gold);color:var(--on-gold);box-shadow:0 6px 20px rgba(var(--gold-rgb), .25);transform:translateY(-2px)}.resume-btn svg{transition:transform .3s var(--ease-out);flex-shrink:0}.resume-btn:hover svg{transform:translateY(2px)}@media (width<=768px){.about-container{flex-direction:column;gap:3rem}.resume-btn{justify-content:center;width:100%}.about-image-col{flex:auto;width:100%;position:static}.about-image{height:350px}.about-details{flex-direction:column;gap:2rem}}.contact-section{background:var(--bg-dark);padding:8rem 2rem}.contact-container{max-width:1000px;margin:0 auto}.contact-header{text-align:center;opacity:0;margin-bottom:4rem;transform:translateY(20px)}.contact-section.visible .contact-header{animation:.7s cubic-bezier(.16,1,.3,1) forwards contactReveal}.contact-grid{grid-template-columns:repeat(3,1fr);gap:2rem;display:grid}.contact-card{background:var(--bg-card);border:1px solid var(--border-subtle);box-shadow:var(--shadow-rest);text-align:center;cursor:pointer;will-change:transform;opacity:0;padding:3rem 2rem;text-decoration:none;transition:all .3s ease-out;display:block;position:relative;overflow:hidden;transform:translateY(30px)}.contact-section.visible .contact-card:first-child{animation:.6s cubic-bezier(.16,1,.3,1) .15s forwards contactReveal}.contact-section.visible .contact-card:nth-child(2){animation:.6s cubic-bezier(.16,1,.3,1) .3s forwards contactReveal}.contact-section.visible .contact-card:nth-child(3){animation:.6s cubic-bezier(.16,1,.3,1) .45s forwards contactReveal}@keyframes contactReveal{to{opacity:1;transform:translateY(0)}}.card-glow{pointer-events:none;z-index:0;position:absolute;inset:0}.contact-card:hover{border-color:rgba(var(--gold-rgb), .45);box-shadow:var(--shadow-card), 0 0 0 1px rgba(var(--gold-rgb), .12) inset}.contact-icon{color:var(--gold-ink);z-index:1;margin-bottom:1.5rem;transition:transform .3s;position:relative}.contact-card:hover .contact-icon{transform:scale(1.15)}.contact-label{font-family:var(--font-sans);color:var(--text-secondary);z-index:1;margin-bottom:.75rem;font-size:1rem;font-weight:400;position:relative}.contact-value{color:var(--text-muted);letter-spacing:.03em;z-index:1;font-size:.85rem;font-weight:300;transition:color .3s;position:relative}.contact-card:hover .contact-value{color:var(--text-secondary)}@media (width<=768px){.contact-grid{grid-template-columns:1fr;gap:1rem}.contact-card{padding:2rem 1.5rem}}.footer{background:var(--bg-footer);border-top:1px solid var(--border-subtle);padding:2.5rem 2rem 1.5rem}.footer-inner{max-width:1200px;margin:0 auto}.footer-top{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.footer-logo{align-items:center;gap:.75rem;display:flex}.footer-logo-text{background:var(--logo-tile);width:32px;height:32px;color:var(--logo-ink);font-family:var(--font-display);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;line-height:1;display:inline-flex}.footer-logo-name{color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem}.footer-social{gap:1rem;display:flex}.social-link{border:1px solid rgba(var(--gold-rgb), .15);width:36px;height:36px;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.social-link:hover,.social-link:focus-visible{color:var(--gold-ink);border-color:rgba(var(--gold-rgb), .5);box-shadow:var(--shadow-soft);transform:translateY(-2px)}.back-to-top{border:1px solid rgba(var(--gold-rgb), .2);width:36px;height:36px;color:var(--text-faint);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.back-to-top:hover,.back-to-top:focus-visible{color:var(--gold-ink);border-color:rgba(var(--gold-rgb), .5);box-shadow:var(--shadow-soft);transform:translateY(-3px)}.footer-divider{background:var(--border-subtle);height:1px;margin-bottom:1.25rem}.footer-bottom{text-align:center}.footer-resume{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.45rem;margin-bottom:.85rem;font-size:.75rem;transition:color .3s;display:inline-flex}.footer-resume:hover,.footer-resume:focus-visible{color:var(--gold-ink)}.footer-resume svg{flex-shrink:0}.footer-copy{color:var(--text-faint);letter-spacing:.05em;font-size:.72rem}@media (width<=768px){.footer-top{flex-direction:column;gap:1.25rem}}:root{--gold:#c9a96e;--gold-rgb:201, 169, 110;--gold-ink:#c9a96e;--gold-ink-rgb:201, 169, 110;--on-gold:#0f0f0f;--bg-dark:#0a0a0a;--bg-section:#0f0f0f;--bg-card:#151515;--bg-footer:#080808;--text-primary:#fff;--text-secondary:#ffffffbf;--text-muted:#ffffff8c;--text-faint:#fff6;--border-subtle:#ffffff14;--border-strong:#ffffff24;--navbar-bg:#0f0f0feb;--navbar-menu-bg:#0f0f0ffa;--hero-scrim:linear-gradient(135deg, #0a0a0aeb 0%, #141414d9 50%, #0a0a0ae6 100%);--hero-bg-filter:none;--scrim:#0006;--overlay-hover:#ffffff0f;--shadow-rest:none;--shadow-soft:0 4px 12px #0000004d;--shadow-card:0 20px 40px #0000004d;--shadow-book:0 25px 60px #00000073;--shadow-panel:0 12px 40px #00000080;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-smooth:cubic-bezier(.42, 0, .58, 1)}[data-theme=light]{--gold:#b08d45;--gold-rgb:176, 141, 69;--gold-ink:#8a6d3b;--gold-ink-rgb:138, 109, 59;--on-gold:#fff;--bg-dark:#fff;--bg-section:#faf8f4;--bg-card:#fff;--bg-footer:#f4f1ea;--text-primary:#111;--text-secondary:#000000c7;--text-muted:#00000094;--text-faint:#00000073;--border-subtle:#00000017;--border-strong:#00000029;--navbar-bg:#ffffffe6;--navbar-menu-bg:#fffffffa;--hero-scrim:linear-gradient(135deg, #ffffffe6 0%, #faf8f4cc 50%, #ffffffe6 100%);--hero-bg-filter:grayscale(100%) brightness(1.25) contrast(.92);--scrim:#00000059;--overlay-hover:#0000000d;--shadow-rest:0 2px 10px #0000000d;--shadow-soft:0 4px 12px #0000001a;--shadow-card:0 20px 40px #00000014;--shadow-book:0 30px 70px #00000029;--shadow-panel:0 12px 40px #0000002e}:root{--book-page:#fff;--book-ink:#0f0f0f;--book-ink-soft:#000000bf;--book-ink-faint:#00000080;--book-gold:#a3814a;--book-gold-rgb:163, 129, 74;--book-number:#a3814a47;--book-border:#0000001f;--book-gutter:#00000024;--book-fold:linear-gradient( to right, #faf9f6f5, #ece9e3f7);--book-edge:linear-gradient(to right, #e7e3db 0%, #f8f6f2 15%, #e7e3db 50%, #f8f6f2 85%, #e7e3db 100%);--book-spine:linear-gradient(to right, #d6d1c6, #eeeae2 30%, #fbf9f5 50%, #eeeae2 70%, #d6d1c6);--book-edge-shadow:0 2px 7px #0000001a;--book-spine-shadow:-4px 0 14px #00000017, 4px 0 14px #00000017;--book-stack-line:#00000024;--book-crease-rgb:0, 0, 0;--logo-tile:#c9a96e;--logo-ink:#0f0f0f;--font-sans:"Inter", "Heebo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Playfair Display", serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--bg-dark);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s,color .3s;overflow-x:hidden}::selection{background:rgba(var(--gold-rgb), .3);color:var(--text-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:rgba(var(--gold-rgb), .3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(var(--gold-rgb), .5)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}img{display:block}a{color:inherit;text-decoration:none}button{font-family:inherit}.app{min-height:100vh}.scroll-progress-bar{z-index:1100;background:0 0;height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress-fill{background:linear-gradient(to right, var(--gold), #e8d5a8);height:100%;box-shadow:0 0 8px rgba(var(--gold-rgb), .4);transition:width .1s linear}.a11y-high-contrast{filter:contrast(1.4)!important}.a11y-high-contrast *{border-color:var(--text-primary)!important}.a11y-link-highlight a,.a11y-link-highlight button{outline-offset:2px!important;outline:2px solid #ff0!important}.a11y-big-cursor,.a11y-big-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M5 2l20 14-10 2 6 12-4 2-6-12-6 8z' fill='%23fff' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") 4 4,auto!important}.a11y-stop-animations,.a11y-stop-animations *{transition:none!important;animation:none!important}.a11y-readable-font,.a11y-readable-font *{letter-spacing:.03em!important;word-spacing:.1em!important;font-family:Arial,Helvetica,sans-serif!important}.a11y-line-height,.a11y-line-height *{line-height:2!important}
