@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Mono:wght@300;400;500&family=Outfit:wght@200;300;400;500&display=swap";.all-projects-page{min-height:100vh;padding:8rem 0 5rem;color:var(--text);position:relative;overflow-x:hidden;background:radial-gradient(circle at 12% 8%,rgba(35,45,62,.78),transparent 34%),radial-gradient(circle at 88% 14%,rgba(54,31,12,.56),transparent 30%),var(--bg, #08090b)}.all-projects-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");opacity:.026;pointer-events:none;z-index:0}.all-projects-page:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(199,168,85,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(199,168,85,.06) 1px,transparent 1px);background-size:120px 120px;opacity:.2;pointer-events:none;z-index:0}.projects-wrap{width:min(1240px,calc(100% - 3rem));margin:0 auto;position:relative;z-index:1}.projects-head{text-align:center;margin:0 auto 2.4rem;padding:0;border:0}.projects-kicker{margin:0;color:var(--accent);font-family:DM Mono,monospace;text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;display:inline-flex;align-items:center;justify-content:center;gap:.75rem}.projects-kicker:before,.projects-kicker:after{content:"";width:2.4rem;height:1px;background:var(--accent)}.projects-head h1{font-family:Cormorant Garamond,serif;font-size:clamp(3rem,7vw,5.6rem);font-weight:300;line-height:1.05;margin:.85rem 0 .65rem}.projects-head h1 em{font-style:italic;color:var(--accent)}.projects-subtext{margin:0 auto;color:var(--muted);line-height:1.8;max-width:62ch;font-size:1.02rem}.projects-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:2rem}.projects-filter-chip{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:#0c0e12b8;padding:.48rem .8rem;cursor:pointer;border-radius:2px;transition:color .2s ease,border-color .2s ease,background .2s ease}.projects-filter-chip:hover,.projects-filter-chip.is-active{color:var(--accent);border-color:var(--accent);background:#c7a8551a}.projects-list{display:flex;flex-direction:column;gap:1.45rem}.project-case{position:relative;display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,.6fr);align-items:center;gap:0;width:min(100%,920px);margin:0 auto;min-height:300px;border:1px solid rgba(199,168,85,.22);border-radius:16px;background:linear-gradient(145deg,#14161afa,#0a0b0efa);box-shadow:0 14px 36px #00000047;overflow:hidden;transition:border-color .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1)}.project-case:hover{border-color:#c7a8558c;box-shadow:0 24px 56px #00000061,0 0 0 1px #c7a8552e,0 0 36px #c7a8551f}.project-case--reverse{grid-template-columns:minmax(0,.6fr) minmax(0,.4fr)}.project-case--reverse .project-case__media{order:-1;margin:.8rem .55rem .8rem .8rem}.project-case__content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:.68rem;min-width:0;padding:clamp(1.2rem,2.4vw,1.9rem)}.project-case__number{position:absolute;right:.6rem;bottom:-.35rem;font-family:Cormorant Garamond,serif;font-size:clamp(4.1rem,7vw,6rem);font-weight:300;line-height:.85;color:#c7a85514;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.project-case__rank-label{position:relative;z-index:1;margin:0;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.project-case__title{position:relative;z-index:1;margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(1.7rem,2.8vw,2.4rem);font-weight:400;line-height:1.05;letter-spacing:-.01em;color:var(--text);transition:color .3s ease}.project-case:hover .project-case__title{color:var(--accent)}.project-case__category{position:relative;z-index:1;margin:0;font-family:DM Mono,monospace;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.project-case__desc{position:relative;z-index:1;margin:.15rem 0 0;color:var(--muted);font-size:.84rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:42ch}.project-case__stack{position:relative;z-index:1;list-style:none;margin:.2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.project-case__stack-item{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .46rem .28rem .34rem;border:1px solid rgba(199,168,85,.16);border-radius:999px;background:#08090ca6;color:var(--text);font-size:.64rem;line-height:1}.project-case__stack-item img{width:14px;height:14px;object-fit:contain;flex-shrink:0}.project-case__stack-item img.logo-invert{filter:invert(1)}.project-case__stack-fallback{width:14px;height:14px;border-radius:50%;display:inline-grid;place-items:center;font-family:DM Mono,monospace;font-size:.42rem;color:var(--accent);background:#c7a8551f;flex-shrink:0}.project-case__badges{position:relative;z-index:1;list-style:none;margin:.15rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}.project-case__badges li{font-family:DM Mono,monospace;font-size:.52rem;letter-spacing:.1em;text-transform:uppercase;color:#f0d78ae0;border:1px solid rgba(199,168,85,.28);background:#c7a85512;padding:.3rem .45rem;border-radius:2px}.project-case__actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.42rem;margin-top:.35rem}.project-case__btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-family:DM Mono,monospace;font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:.6rem .78rem;border-radius:2px;border:1px solid transparent;transition:transform .22s ease,filter .22s ease,background .22s ease,border-color .22s ease,color .22s ease}.project-case__btn:hover{transform:translateY(-1px)}.project-case__btn--live{background:linear-gradient(145deg,#22c55e47,#15803d6b);border-color:#4ade8073;color:#bbf7d0}.project-case__btn--live:hover{filter:brightness(1.08);color:#ecfdf5;border-color:#86efaca6}.project-case__btn--github{background:linear-gradient(145deg,#163a66,#0d2748);border-color:#60a5fa59;color:#dbeafe}.project-case__btn--github:hover{filter:brightness(1.08);color:#eff6ff;border-color:#93c5fd8c}.project-case__btn--case{background:transparent;color:var(--accent);border-color:#c7a85559}.project-case__btn--case:hover{color:#f0d78a;border-color:var(--accent);background:#c7a85514}.project-case__media{position:relative;display:flex;align-items:center;justify-content:center;margin:.8rem .8rem .8rem .55rem;border-radius:14px;overflow:hidden;border:1px solid rgba(199,168,85,.2);background:#050607;box-shadow:0 12px 28px #00000059,0 2px #c7a85514;align-self:stretch;min-height:240px;text-decoration:none;transform-origin:center center}.project-case__media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(8,9,11,.22),transparent 28%);pointer-events:none;z-index:1}.project-case__media img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;transition:transform .55s cubic-bezier(.22,1,.36,1)}.project-case:hover .project-case__media img{transform:scale(1.04)}.project-case__media-fallback{width:100%;height:100%;min-height:240px;display:grid;place-items:center;font-family:Cormorant Garamond,serif;font-size:8rem;color:#c7a85538}.projects-state,.projects-state--error{border:1px solid var(--line);background:#101216d9;padding:1.4rem;color:var(--muted);display:grid;gap:.8rem;justify-items:start}.projects-retry-btn{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--accent);background:transparent;color:var(--accent);padding:.55rem .9rem;cursor:pointer}.projects-skeleton{display:grid;gap:1.25rem}.projects-skeleton-card{border:1px solid var(--line);border-radius:18px;padding:1.6rem;min-height:280px;background:#101216b3}.projects-skeleton-line{height:12px;margin-top:.7rem;background:linear-gradient(90deg,#c7a85514,#c7a8552e,#c7a85514);background-size:200% 100%;animation:projectsShimmer 1.4s linear infinite}.projects-skeleton-line.short{width:28%}.projects-skeleton-line.medium{width:62%}.projects-skeleton-line.thin{width:84%;height:8px}@keyframes projectsShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.project-case,.project-case__title,.project-case__btn,.project-case__media img{transition:none}.project-case:hover .project-case__media img{transform:none}}@media (max-width: 980px){.project-case{grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);width:min(100%,860px);min-height:280px}.project-case--reverse{grid-template-columns:minmax(0,.58fr) minmax(0,.42fr)}.project-case__media{min-height:220px}}@media (max-width: 780px){.all-projects-page{padding-top:6.5rem}.projects-wrap{width:calc(100% - 1.4rem)}.projects-list{gap:1.35rem}.project-case{grid-template-columns:1fr;min-height:0}.project-case--reverse{grid-template-columns:1fr}.project-case__content{order:1;padding:1.35rem 1.25rem 1.5rem;gap:.75rem}.project-case__media{order:2;margin:0 .85rem .85rem;min-height:0;aspect-ratio:16 / 10;border-radius:16px}.project-case--reverse .project-case__media{order:2;margin:0 .85rem .85rem}.project-case__media-fallback{min-height:220px}.project-case__number{font-size:5.5rem;right:.4rem;bottom:-.2rem}.project-case__desc{max-width:none;-webkit-line-clamp:4}.project-case__stack-item{font-size:.68rem;padding:.3rem .48rem .3rem .35rem}.project-case__stack-item img,.project-case__stack-fallback{width:14px;height:14px}.project-case__actions{flex-direction:column}.project-case__btn{width:100%}}@media (max-width: 420px){.all-projects-page{padding-top:6.2rem}.project-case__title{font-size:1.85rem}}.guestbook-page{min-height:100vh;position:relative;color:var(--text);padding:6.8rem 0 3.5rem;overflow-x:hidden;background:radial-gradient(circle at 12% 8%,#1d222e 0%,transparent 34%),radial-gradient(circle at 85% 12%,#24180f 0%,transparent 35%),linear-gradient(180deg,#08090c,#0a0a0a)}.guestbook-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.4;background-image:linear-gradient(rgba(199,168,85,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(199,168,85,.06) 1px,transparent 1px);background-size:90px 90px}.guestbook-nav{position:fixed;top:.8rem;left:.8rem;right:.8rem;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.35rem;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#1212129e,#0a0a0a5c);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 10px 26px #00000059,inset 0 1px #ffffff14}.guestbook-logo{font-family:Cormorant Garamond,serif;font-size:1.35rem;font-weight:600;color:var(--accent);letter-spacing:.08em}.guestbook-nav-actions{display:inline-flex;align-items:center;gap:.55rem}.guestbook-hamburger,.guestbook-mobile-menu{display:none}.guestbook-mobile-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:190px;gap:.38rem;padding:.5rem;border:1px solid var(--line);background:#0b0c0ff5;border-radius:10px}.guestbook-mobile-menu.open{display:grid}.guestbook-hamburger{border:1px solid var(--line);background:transparent;width:40px;height:40px;padding:7px;cursor:pointer;border-radius:8px}.guestbook-hamburger span{display:block;width:100%;height:2px;margin:5px 0;background:var(--accent)}.guestbook-nav-link{font-family:DM Mono,monospace;font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:.42rem .72rem;transition:all .2s ease}.guestbook-nav-link:hover{color:var(--accent);border-color:var(--accent)}.guestbook-wrap{width:min(1120px,calc(100% - 2.4rem));margin:0 auto;position:relative;z-index:1}.guestbook-tagline{margin:0;color:var(--accent);font-family:DM Mono,monospace;text-transform:uppercase;letter-spacing:.2em;font-size:.66rem}.guestbook-wrap h1{margin:.75rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,5.5vw,4rem);font-weight:300;line-height:1.05}.guestbook-lede{margin:.85rem 0 0;color:var(--muted);line-height:1.8;max-width:62ch;font-size:1.02rem}.guestbook-pinned{margin-top:1.05rem;padding:1rem;border:1px solid rgba(199,168,85,.4);border-radius:12px;background:linear-gradient(135deg,#1b140a80,#0d0d0dcc)}.pinned-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(199,168,85,.56);color:var(--accent);font-family:DM Mono,monospace;letter-spacing:.12em;text-transform:uppercase;font-size:.6rem;padding:.27rem .55rem}.guestbook-pinned p{margin:.7rem 0 0;color:var(--text);line-height:1.75;font-size:.94rem}.guestbook-auth-row{margin-top:.95rem}.guestbook-auth-split{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.guestbook-auth-option{min-height:44px;border:1px solid var(--line);border-radius:10px;background:#0c0e12e0;color:var(--text);padding:.65rem .78rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:DM Mono,monospace;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.guestbook-auth-option:hover{border-color:var(--accent);color:var(--accent-soft)}.guestbook-auth-option.google{border-color:#c7a8556b;background:linear-gradient(135deg,#1f180c94,#0d0d0de0)}.google-mark{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}.google-mark-logo{width:100%;height:100%;display:block}.guestbook-auth-option.manual.active{border-color:var(--accent);color:var(--accent)}.guestbook-dev-login{border:1px solid var(--line);border-radius:12px;background:#0a0a0a70;padding:.85rem;display:grid;gap:.55rem}.guestbook-dev-login input{width:100%;border:1px solid var(--line);border-radius:10px;background:#07080aeb;color:var(--text);padding:.6rem .7rem;font-size:.88rem;font-family:Outfit,sans-serif}.guestbook-dev-login input:focus{outline:none;border-color:#c7a855a6}.guestbook-dev-login button{justify-self:start;font-family:DM Mono,monospace;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);background:transparent;padding:.48rem .72rem;cursor:pointer}.guestbook-dev-login button:hover{color:var(--accent-soft);border-color:var(--accent)}.google-signin-slot{min-height:44px}.google-signin-slot-hidden{position:absolute;left:-10000px;width:1px;height:1px;opacity:0;pointer-events:none}.github-login-btn{font-family:DM Mono,monospace;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);background:transparent;padding:.58rem .82rem;cursor:pointer;transition:all .2s ease}.github-login-btn:hover{color:var(--accent-soft);border-color:var(--accent);transform:translateY(-1px)}.guestbook-auth-note{margin-top:.6rem;color:var(--muted);font-size:.86rem}.guestbook-auth-note code{font-family:DM Mono,monospace;color:var(--accent)}.guestbook-user-chip{border:1px solid var(--line);border-radius:12px;background:#0c0e12e0;padding:.58rem .68rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.62rem}.guestbook-avatar-circle{width:34px;height:34px;border-radius:999px;overflow:hidden;border:1px solid var(--line);background:#c7a85524;color:var(--accent-soft);display:inline-flex;align-items:center;justify-content:center;font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.06em;text-transform:uppercase}.guestbook-avatar-circle img{width:100%;height:100%;object-fit:cover}.guestbook-user-chip strong{display:block;font-size:.9rem}.guestbook-user-chip span{display:block;color:var(--muted);font-size:.75rem;margin-top:.1rem}.guestbook-user-chip button{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:transparent;padding:.4rem .62rem;cursor:pointer}.guestbook-user-chip button:hover{color:var(--accent);border-color:var(--accent)}.guestbook-form{margin-top:.95rem;border:1px solid var(--line);border-radius:12px;padding:.95rem;background:#0a0a0a70}.guestbook-form label{display:block;font-family:DM Mono,monospace;font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}.guestbook-form textarea{width:100%;min-height:150px;resize:vertical;border:1px solid var(--line);border-radius:10px;background:#07080aeb;color:var(--text);padding:.75rem .8rem;line-height:1.7;font-size:.9rem;font-family:Outfit,sans-serif}.guestbook-form textarea:focus{outline:none;border-color:#c7a855a6}.guestbook-form textarea:disabled{opacity:.55}.guestbook-form-actions{margin-top:.55rem;display:flex;justify-content:space-between;align-items:center;gap:.7rem}.guestbook-form-actions span{font-family:DM Mono,monospace;font-size:.66rem;letter-spacing:.08em;color:var(--muted)}.guestbook-form-actions button{font-family:DM Mono,monospace;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);background:transparent;padding:.48rem .72rem;cursor:pointer}.guestbook-form-actions button:hover:not(:disabled){color:var(--accent-soft);border-color:var(--accent)}.guestbook-form-actions button:disabled{opacity:.5;cursor:not-allowed}.guestbook-message-list{margin-top:.95rem;display:grid;gap:.7rem}.guestbook-message-item{border:1px solid var(--line);border-radius:10px;background:#0a0a0a70;padding:.7rem .78rem}.guestbook-message-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.55rem;margin-bottom:.45rem;color:var(--muted);font-family:DM Mono,monospace;font-size:.63rem;letter-spacing:.06em}.guestbook-message-head>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:.18rem;min-width:0}.guestbook-author-name{display:block;color:var(--text);font-family:Outfit,system-ui,sans-serif;font-size:.92rem;font-weight:600;letter-spacing:.01em;line-height:1.25}.guestbook-author-email{display:block;color:var(--muted);font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.04em;line-height:1.3;word-break:break-all}.guestbook-message-item p{margin:0;color:var(--text);line-height:1.6;font-size:.9rem}.guestbook-message-item textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#07080aeb;color:var(--text);padding:.6rem .7rem;line-height:1.6;font-size:.88rem;font-family:Outfit,sans-serif}.guestbook-message-item textarea:focus{outline:none;border-color:#c7a855a6}.guestbook-message-item footer{margin-top:.45rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem;color:var(--muted);font-family:DM Mono,monospace;font-size:.63rem;letter-spacing:.06em}.guestbook-message-id{margin-top:.2rem;color:var(--accent);font-family:DM Mono,monospace;font-size:.6rem;letter-spacing:.04em}.guestbook-footer-right{display:inline-flex;align-items:center;gap:.55rem}.guestbook-message-actions{display:inline-flex;align-items:center;gap:.35rem}.guestbook-message-actions button{font-family:DM Mono,monospace;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:transparent;padding:.26rem .4rem;cursor:pointer}.guestbook-message-actions button:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.guestbook-message-actions button:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 720px){.guestbook-page{padding-top:5.8rem}.guestbook-nav{top:.5rem;left:.5rem;right:.5rem;padding:.85rem .95rem}.guestbook-nav-actions{display:none}.guestbook-hamburger{display:block}.guestbook-mobile-menu .guestbook-nav-link{font-size:.6rem;padding:.4rem .6rem;letter-spacing:.11em}.guestbook-user-chip{grid-template-columns:1fr;justify-items:start}.guestbook-auth-split{grid-template-columns:1fr}.guestbook-form-actions{flex-direction:column;align-items:stretch}.guestbook-form-actions button{width:100%}}.guestbook-page{padding:8rem 0 5rem;background:radial-gradient(circle at 10% 8%,rgba(36,47,66,.82),transparent 36%),radial-gradient(circle at 90% 12%,rgba(57,33,14,.62),transparent 32%),#08090b}.guestbook-page:before{opacity:.18;background-size:120px 120px}.guestbook-wrap{width:min(1080px,calc(100% - 3rem))}.guestbook-tagline{display:flex;align-items:center;justify-content:center;gap:.8rem;text-align:center}.guestbook-tagline:before,.guestbook-tagline:after{content:"";width:2.5rem;height:1px;background:var(--accent)}.guestbook-wrap>h1{max-width:900px;margin:1rem auto 0;text-align:center;font-size:clamp(3rem,7.5vw,5.8rem);letter-spacing:-.025em}.guestbook-lede{max-width:600px;margin:1rem auto 2.3rem;text-align:center}.guestbook-pinned{position:relative;max-width:820px;margin:0 auto 1rem;padding:1.25rem 1.4rem;border-radius:14px;overflow:hidden}.guestbook-pinned:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}.guestbook-panel.guestbook-auth-row{max-width:820px;margin:0 auto;padding:0;border:0;background:transparent}.guestbook-auth-option.google{width:100%;min-height:52px;border-radius:8px;background:#0c0e12e6;box-shadow:0 12px 30px #0000003d}.guestbook-form{max-width:820px;margin:1rem auto 0;padding:1.25rem;border-radius:16px;background:linear-gradient(145deg,#14161bf0,#090a0df0);box-shadow:0 18px 44px #0000004d}.guestbook-form textarea{min-height:180px;border-radius:10px;background:#040507c7}.guestbook-form-actions button{padding:.65rem .9rem;border-color:#c7a8557a;background:#c7a85514}.guestbook-auth-note,.guestbook-empty,.guestbook-skeleton,.guestbook-message-list{max-width:820px;margin-left:auto;margin-right:auto}.guestbook-empty{margin-top:1.25rem;text-align:center;color:var(--muted)}.guestbook-message-list{margin-top:2rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.guestbook-message-item{padding:1rem;border-radius:14px;background:linear-gradient(145deg,#121418eb,#090a0df0);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.guestbook-message-item:hover{transform:translateY(-2px);border-color:#c7a85561;box-shadow:0 16px 34px #00000047}.guestbook-message-item p{font-size:.96rem;line-height:1.75}.guestbook-owner-reply{margin:1rem 0 .35rem;padding:.95rem 1rem;border-radius:12px;border:1px solid rgba(199,168,85,.24);background:linear-gradient(135deg,rgba(199,168,85,.08),transparent 55%),#08090cb8}.guestbook-owner-reply .guestbook-message-head{margin-bottom:.65rem}.guestbook-avatar-circle--owner{border-color:#c7a8558c;box-shadow:0 0 0 1px #c7a8552e}.guestbook-owner-badge{display:inline-flex;margin-top:.2rem;padding:.22rem .45rem;border-radius:999px;border:1px solid rgba(199,168,85,.35);background:#c7a8551a;color:var(--accent);font-family:DM Mono,monospace;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase}.guestbook-owner-reply p{margin:0;color:var(--text)}.guestbook-owner-reply time{display:inline-block;margin-top:.65rem;color:var(--muted);font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.guestbook-user-chip{border-radius:10px}@media (max-width: 720px){.guestbook-page{padding:6.5rem 0 3.5rem}.guestbook-wrap{width:calc(100% - 1.4rem)}.guestbook-wrap>h1{font-size:clamp(2.7rem,13vw,4.2rem)}.guestbook-message-list{grid-template-columns:1fr}.guestbook-form{padding:.9rem}}.book-call-page{min-height:100vh;position:relative;color:var(--text);padding:6.8rem 0 3.5rem;overflow-x:hidden;background:radial-gradient(circle at 12% 8%,#1d222e 0%,transparent 34%),radial-gradient(circle at 85% 12%,#24180f 0%,transparent 35%),var(--bg, #0b0d10)}.book-call-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.45;background-image:linear-gradient(rgba(199,168,85,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(199,168,85,.06) 1px,transparent 1px);background-size:90px 90px}.book-call-wrap{width:min(1120px,calc(100% - 2.4rem));margin:0 auto;position:relative;z-index:1}.book-call-wrap:before{content:"";position:absolute;top:-2rem;right:4%;width:260px;height:260px;border-radius:999px;pointer-events:none;background:radial-gradient(circle,#c7a8552e,#c7a85500)}.book-call-kicker{margin:0;color:var(--accent);font-family:DM Mono,monospace;text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;display:inline-flex;align-items:center;gap:.55rem}.book-call-kicker:before{content:"";width:.45rem;height:.45rem;border-radius:999px;background:var(--accent);box-shadow:0 0 14px #c7a85573}.book-call-title{margin:.75rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(2.6rem,6vw,4.4rem);font-weight:300;letter-spacing:.02em;line-height:1.02}.book-call-title span{font-style:italic;color:var(--accent)}.book-call-subtext{margin:1rem 0 0;color:var(--muted);line-height:1.8;max-width:58ch;font-size:1.02rem}.book-call-card{margin-top:2rem;border:1px solid rgba(199,168,85,.24);background:linear-gradient(145deg,#16181cf2,#0b0c0ff0);padding:clamp(1.3rem,3vw,2rem);position:relative;overflow:hidden;box-shadow:0 24px 48px #00000059}.book-call-card:after{content:"Connect";position:absolute;right:.8rem;bottom:-.35rem;font-family:Cormorant Garamond,serif;font-size:clamp(2.4rem,8vw,4.8rem);letter-spacing:.08em;color:#c7a85514;pointer-events:none;line-height:1}.book-call-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;position:relative;z-index:1}.book-call-label{margin:0;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.book-call-card-head h2{margin:.45rem 0 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:500}.book-call-card>p,.book-call-note{position:relative;z-index:1;margin:1.05rem 0 0;color:var(--muted);line-height:1.75;max-width:68ch}.book-slot-row{display:flex;flex-wrap:wrap;gap:.55rem}.book-slot-btn{display:inline-flex;align-items:center;gap:.55rem;font-family:DM Mono,monospace;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#b7f7d1;padding:.82rem 1.1rem;border-radius:0;text-decoration:none;border:1px solid rgba(74,222,128,.45);background:linear-gradient(145deg,#22c55e2e,#10b9811a);backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);box-shadow:inset 0 1px #ffffff1f,0 10px 28px #10b98129;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease,background .2s ease}.book-slot-btn:hover{transform:translateY(-2px);color:#ecfdf5;border-color:#86efacb3;background:linear-gradient(145deg,#22c55e47,#10b98129);box-shadow:inset 0 1px #ffffff29,0 14px 32px #10b98147}.book-slot-icon{width:1.05rem;height:1.05rem;flex-shrink:0}.meet-logo{width:1.15rem;height:1.15rem}.book-call-points{position:relative;z-index:1;margin:1.2rem 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.book-call-points li{border:1px solid rgba(199,168,85,.22);background:#08090c8c;padding:.85rem .9rem;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}.book-call-note{border-top:1px solid rgba(199,168,85,.16);padding-top:1rem}@media (max-width: 820px){.book-call-wrap{width:calc(100% - 1.4rem)}.book-call-points{grid-template-columns:1fr}}@media (max-width: 480px){.book-call-page{padding-top:6.2rem}.book-slot-btn{width:100%;justify-content:center}}.feedback-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:1.2rem;background:#040507b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:feedbackFadeIn .22s ease}.feedback-modal{width:min(440px,94vw);border-radius:16px;border:1px solid rgba(199,168,85,.28);background:linear-gradient(155deg,#181a20eb,#0a0b0ef0);box-shadow:0 28px 60px #00000080;padding:1.25rem 1.25rem 1.35rem;animation:feedbackScaleIn .26s cubic-bezier(.2,.8,.2,1)}.feedback-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:1rem}.feedback-modal-kicker{margin:0;font-family:DM Mono,monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent, #c9a84c)}.feedback-modal-head h3{margin:.35rem 0 0;font-family:Cormorant Garamond,serif;font-size:1.7rem;font-weight:400;color:#f2eee4}.feedback-modal-close{width:2rem;height:2rem;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:#e8e0d0;cursor:pointer;transition:transform .2s ease,border-color .2s ease}.feedback-modal-close:hover{transform:scale(1.06);border-color:#c7a85573}.feedback-form{display:grid;gap:.9rem}.feedback-field{display:grid;gap:.4rem;margin:0;border:0;padding:0;color:var(--muted, #9a9388);font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}.feedback-field input,.feedback-field textarea{width:100%;box-sizing:border-box;border:1px solid rgba(199,168,85,.22);border-radius:10px;background:#06080bb8;color:#f2eee4;font-family:Outfit,sans-serif;font-size:.95rem;letter-spacing:0;text-transform:none;padding:.72rem .85rem;outline:none;resize:vertical}.feedback-field input:focus,.feedback-field textarea:focus{border-color:#c7a8558c}.feedback-stars{display:flex;gap:.35rem}.feedback-star{border:0;background:transparent;color:#ffffff38;font-size:1.55rem;line-height:1;cursor:pointer;padding:.1rem;transition:color .15s ease,transform .15s ease}.feedback-star.is-active,.feedback-star:hover{color:#c9a84c;transform:translateY(-1px) scale(1.08)}.feedback-error{margin:0;color:#fca5a5;font-family:Outfit,sans-serif;font-size:.85rem;text-transform:none;letter-spacing:0}.feedback-submit{border:1px solid rgba(199,168,85,.55);border-radius:999px;background:linear-gradient(140deg,#c7a855f2,#a98a3fe6);color:#151108;font-family:DM Mono,monospace;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;padding:.78rem 1rem;cursor:pointer;transition:filter .2s ease,transform .2s ease,opacity .2s ease}.feedback-submit:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.feedback-submit:disabled{opacity:.45;cursor:not-allowed}.feedback-success{text-align:center;padding:1.4rem .4rem .8rem;animation:feedbackScaleIn .32s ease}.feedback-success-ring{width:3.4rem;height:3.4rem;margin:0 auto .9rem;border-radius:999px;display:grid;place-items:center;color:#bbf7d0;border:1px solid rgba(74,222,128,.45);background:linear-gradient(145deg,#22c55e38,#10b9811a);box-shadow:0 0 0 8px #22c55e14;animation:feedbackPulse .7s ease}.feedback-success-ring svg{width:1.4rem;height:1.4rem}.feedback-success h3{margin:0;font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:400;color:#f2eee4}.feedback-success p{margin:.45rem 0 0;color:var(--muted, #9a9388)}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}@keyframes feedbackScaleIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes feedbackPulse{0%{transform:scale(.86);opacity:.5}to{transform:scale(1);opacity:1}}@media (max-width: 480px){.feedback-modal{padding:1.05rem}}.project-detail-page{min-height:100vh;background:radial-gradient(circle at 12% 10%,#1f2633,transparent 34%),radial-gradient(circle at 85% 15%,#23160b,transparent 32%),var(--bg, #0b0d10);color:var(--text);padding:6.8rem 0 3.2rem;overflow-x:hidden;transition:opacity .22s ease,transform .22s ease}.project-detail-page.is-closing{opacity:0;transform:translateY(8px) scale(.992)}.project-detail-close{position:absolute;top:1rem;right:1rem;z-index:5;width:2.6rem;height:2.6rem;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:linear-gradient(145deg,#ef4444,#991b1b);color:#fff;font-size:1.05rem;line-height:1;cursor:pointer;box-shadow:0 12px 28px #b91c1c59,inset 0 1px #fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .2s ease,filter .2s ease,box-shadow .2s ease}.project-detail-close:hover{transform:scale(1.08);filter:brightness(1.06);box-shadow:0 16px 34px #b91c1c73,inset 0 1px #ffffff3d}.project-detail-wrap{position:relative;width:min(1120px,calc(100% - 2.4rem));margin:0 auto;border:1px solid rgba(199,168,85,.22);background:linear-gradient(145deg,#16181cf2,#0c0d10f0);padding:clamp(1.1rem,2.5vw,1.6rem);padding-right:clamp(3.4rem,5vw,4rem);border-radius:4px;box-shadow:0 22px 44px #0000005c}.project-detail-kicker{margin:0;color:var(--accent);font-family:DM Mono,monospace;text-transform:uppercase;letter-spacing:.2em;font-size:.66rem}.project-detail-wrap h1{margin:.55rem 0 .35rem;font-size:clamp(2rem,4.2vw,3.1rem);font-weight:300;line-height:1.1}.project-detail-period{margin:0;color:var(--muted);font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.project-detail-section{margin-top:1rem;border:1px solid var(--line);border-radius:12px;padding:.95rem;background:#0a0a0a80}.project-detail-section h2{margin:0;font-size:1.15rem;font-weight:400}.project-detail-section p{margin:.55rem 0 0;color:var(--muted);line-height:1.75}.project-detail-section .project-carousel{margin-top:.65rem}.project-detail-stack{margin-top:.65rem;display:flex;gap:.45rem;flex-wrap:wrap}.project-detail-stack-item{font-family:DM Mono,monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);border-radius:999px;padding:.34rem .56rem;color:var(--accent-soft);display:inline-flex;align-items:center;gap:.34rem}.project-detail-stack-logo-wrap{width:18px;height:18px;border-radius:999px;background:#fff;display:inline-flex;align-items:center;justify-content:center}.project-detail-stack-logo{width:12px;height:12px;display:block}.project-detail-actions{margin-top:1.15rem;display:flex;gap:.65rem;flex-wrap:wrap;justify-content:center;align-items:center;border:0;background:transparent;padding:0}.project-detail-cta{font-family:DM Mono,monospace;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line);padding:.55rem .85rem;color:var(--accent);display:inline-flex;align-items:center;gap:.42rem;transition:all .2s ease;background:#c7a8550f;text-decoration:none;border-radius:2px;cursor:pointer}.project-detail-cta-icon{width:1rem;height:1rem;flex-shrink:0}.project-detail-cta-github{background:linear-gradient(145deg,#163a66,#0d2748);border-color:#60a5fa59;color:#dbeafe}.project-detail-cta-github:hover{filter:brightness(1.08);color:#eff6ff;border-color:#93c5fd8c;background:linear-gradient(145deg,#1a4474,#103055)}.project-detail-cta-live{background:linear-gradient(145deg,#22c55e47,#15803d6b);border-color:#4ade8073;color:#bbf7d0}.project-detail-cta-live:hover{filter:brightness(1.08);color:#ecfdf5;border-color:#86efaca6;background:linear-gradient(145deg,#22c55e61,#15803d85)}.project-detail-cta-feedback{background:linear-gradient(145deg,#c7a8552e,#c7a85514);border-color:#c7a85573;color:#e5cb7a}.project-detail-cta-feedback:hover{filter:brightness(1.08);color:#f6e7b2;border-color:#c7a855b3}.github-logo-wrap{width:18px;height:18px;border-radius:999px;background:#fff;display:inline-flex;align-items:center;justify-content:center}.github-logo-original{width:12px;height:12px;display:block}.project-detail-retry{display:inline-flex;margin-top:.9rem;font-family:DM Mono,monospace;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--line);background:transparent;padding:.48rem .78rem;cursor:pointer;transition:border-color .2s ease,background .2s ease}.project-detail-retry:hover{border-color:var(--accent);background:#c7a8551a}.project-detail-skeleton{margin-top:1rem;display:grid;gap:.55rem}.project-detail-skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,#c7a85514,#c7a8552e,#c7a85514);background-size:200% 100%;animation:project-detail-shimmer 1.4s ease-in-out infinite}.project-detail-skeleton-line.short{width:24%}.project-detail-skeleton-line.medium{width:58%}@keyframes project-detail-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width: 720px){.project-detail-page{padding-top:5.8rem}.project-detail-close{top:.85rem;right:.85rem;width:2.4rem;height:2.4rem}.project-detail-photos{grid-template-columns:1fr}.project-carousel--hero{min-height:240px;padding:.65rem}.project-carousel-stage{width:100%;min-height:180px}}.portfolio-footer{--pf-bg: #090909;--pf-text: #ffffff;--pf-muted: rgba(255, 255, 255, .65);--pf-line: rgba(255, 255, 255, .08);--pf-gold: #c9a84c;position:relative;left:50%;width:100vw;max-width:100vw;margin:0 0 0 -50vw;padding:clamp(5.5rem,9vw,7.5rem) 0 clamp(2.4rem,4vw,3.2rem);min-height:clamp(34rem,58vw,40rem);overflow:hidden;isolation:isolate;background:var(--pf-bg);color:var(--pf-text);box-sizing:border-box}.portfolio-footer__ghost{position:absolute;left:50%;top:8%;transform:translate(-50%);width:100%;max-width:100%;text-align:center;font-family:Outfit,sans-serif;font-weight:700;font-size:clamp(3.2rem,12vw,9.5rem);line-height:.9;letter-spacing:-.04em;color:#fff;opacity:.06;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:0}.portfolio-footer__shell{position:relative;z-index:1;width:min(1180px,calc(100% - 4.5rem));margin:0 auto;display:flex;flex-direction:column;justify-content:flex-end;min-height:inherit;gap:clamp(3.5rem,7vw,5.5rem);padding-top:clamp(5rem,10vw,8rem)}.portfolio-footer__grid{display:grid;grid-template-columns:1.15fr .9fr .9fr 1.15fr;gap:clamp(2rem,4vw,3.5rem);align-items:start}.portfolio-footer__nav{position:static!important;display:block!important;margin:0;padding:0;background:transparent!important;border:none!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.portfolio-footer__logo{display:inline-flex;width:80px;height:80px;border-radius:18px;background:#fff;overflow:hidden;margin-bottom:1.6rem;box-shadow:0 14px 34px #00000059;transition:transform .28s ease}.portfolio-footer__logo:hover,.portfolio-footer__logo:focus-visible{transform:translateY(-2px) scale(1.03);outline:none}.portfolio-footer__logo img{width:100%;height:100%;object-fit:cover;display:block}.portfolio-footer__socials{display:flex;flex-wrap:wrap;gap:.75rem}.portfolio-footer__social{width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff08;color:var(--pf-text);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:transform .28s ease,border-color .28s ease,color .28s ease,background .28s ease}.portfolio-footer__social svg{width:15px;height:15px}.portfolio-footer__social:hover,.portfolio-footer__social:focus-visible{transform:scale(1.08);border-color:var(--pf-gold);color:var(--pf-gold);background:#c9a84c14;outline:none}.portfolio-footer__title{margin:0 0 1.35rem;font-family:Outfit,sans-serif;font-size:.92rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--pf-text)}.portfolio-footer__nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.portfolio-footer__nav a,.portfolio-footer__contact a,.portfolio-footer__contact p{margin:0;color:var(--pf-muted);text-decoration:none;font-family:Outfit,sans-serif;font-size:.98rem;font-weight:500;line-height:1.5;transition:color .25s ease}.portfolio-footer__nav a{position:relative;display:inline-block;width:fit-content}.portfolio-footer__nav a:after{content:"";position:absolute;left:0;bottom:-.18rem;width:100%;height:1px;background:var(--pf-gold);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}.portfolio-footer__nav a:hover,.portfolio-footer__nav a:focus-visible,.portfolio-footer__contact a:hover,.portfolio-footer__contact a:focus-visible{color:var(--pf-gold);outline:none}.portfolio-footer__nav a:hover:after,.portfolio-footer__nav a:focus-visible:after{transform:scaleX(1)}.portfolio-footer__contact{font-style:normal;display:grid;gap:.85rem}.portfolio-footer__availability{margin-top:.35rem!important;color:#ffffff80!important;font-size:.9rem!important}.portfolio-footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1.6rem;border-top:1px solid var(--pf-line);font-family:DM Mono,monospace;font-size:.66rem;letter-spacing:.1em;color:#ffffff73}@media (max-width: 980px){.portfolio-footer{min-height:auto;padding:4.8rem 0 2.4rem}.portfolio-footer__shell{width:calc(100% - 2.4rem);padding-top:4.5rem;gap:3rem}.portfolio-footer__grid{grid-template-columns:1fr 1fr;gap:2.4rem 2rem}.portfolio-footer__ghost{font-size:clamp(2.6rem,11vw,5.5rem);top:4%}}@media (max-width: 640px){.portfolio-footer__shell{width:calc(100% - 1.6rem);gap:2.4rem;padding-top:3.5rem}.portfolio-footer__grid{grid-template-columns:1fr;gap:2.2rem}.portfolio-footer__logo{width:68px;height:68px;margin-bottom:1.2rem}.portfolio-footer__bottom{flex-direction:column;align-items:flex-start;gap:.55rem}.portfolio-footer__ghost{font-size:clamp(1.9rem,11.5vw,3.4rem)}}@media (prefers-reduced-motion: reduce){.portfolio-footer__logo,.portfolio-footer__social,.portfolio-footer__nav a:after{transition:none}}:root{--bg: #0b0d10;--bg-soft: #141920;--panel: #181f29;--text: #ece7da;--muted: #9c9382;--accent: #c7a855;--accent-soft: #efd28b;--line: rgba(199, 168, 85, .24)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0;display:none}body{background:radial-gradient(circle at 10% 10%,#1a1f29,transparent 35%),radial-gradient(circle at 90% 20%,#1a1209,transparent 32%),var(--bg);color:var(--text);font-family:Outfit,sans-serif;font-weight:300;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2,h3,h4,em{font-family:Cormorant Garamond,serif;margin:0}p,li,button,span{font-family:Outfit,sans-serif}.page-shell{position:relative;overflow:hidden}.legacy-frame{width:100%;height:100vh;border:0;display:block;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.legacy-frame::-webkit-scrollbar{width:0;height:0;display:none}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-soft));z-index:999}.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1.2rem 2.4rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(180deg,rgba(11,13,16,.95),transparent)}.logo{color:var(--accent);font-size:1.2rem;font-weight:600;letter-spacing:.08em}.nav-links{display:flex;list-style:none;gap:1.4rem;padding:0;margin:0}.nav-links a{color:var(--muted);font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.nav-links a:hover{color:var(--accent)}.hamburger{display:none;border:0;background:transparent;width:40px;height:40px;padding:6px;cursor:pointer}.hamburger span{display:block;width:100%;height:2px;background:var(--accent);margin:5px 0}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0d10f5;display:grid;place-items:center;transform:translateY(-100%);transition:transform .35s ease;z-index:40}.mobile-menu.open{transform:translateY(0)}.mobile-menu ul{list-style:none;margin:0;padding:0;text-align:center}.mobile-menu li+li{margin-top:1rem}.mobile-menu a{font-size:2rem;color:var(--text)}.hero{min-height:100vh;display:grid;place-items:center;padding:7rem 2rem 3rem;position:relative}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(199,168,85,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(199,168,85,.06) 1px,transparent 1px);background-size:90px 90px;pointer-events:none}.hero-content{position:relative;max-width:880px}.hero-tag{color:var(--accent);font-family:DM Mono,monospace;letter-spacing:.18em;text-transform:uppercase;font-size:.7rem}.hero h1{margin-top:1rem;font-size:clamp(2.8rem,8vw,6.4rem);line-height:.96}.hero h1 em{color:var(--accent)}.hero p{margin-top:1.4rem;font-size:1.05rem;color:var(--muted);max-width:64ch;line-height:1.8}.hero-actions{margin-top:2rem;display:flex;gap:.8rem;flex-wrap:wrap}.button{padding:.8rem 1.3rem;text-transform:uppercase;letter-spacing:.09em;font-family:DM Mono,monospace;font-size:.72rem;border:1px solid var(--line)}.button-primary{background:var(--accent);color:#0c0c0c;border-color:var(--accent)}.button-secondary{color:var(--text)}.section{padding:5rem 2rem;max-width:1120px;margin:0 auto}.section-header{margin-bottom:2.1rem}.section-header .section-label{margin:0;color:var(--accent);font-family:DM Mono,monospace;text-transform:uppercase;letter-spacing:.16em;font-size:.65rem}.section-header h2{margin-top:.5rem;font-size:clamp(2rem,5vw,3.6rem)}.section-header em{color:var(--accent)}.about-grid{display:grid;gap:1.2rem;grid-template-columns:1.2fr .8fr}.about-copy p{color:var(--muted);line-height:1.9}.about-stats{display:grid;gap:.8rem}.stat-card,.skill-card,.project-card,.timeline-item,.achievement-card,.education-card,.cert-card,.language-card{background:linear-gradient(135deg,#181f29f2,#0f1319f2);border:1px solid var(--line);padding:1.1rem}.stat-card strong{color:var(--accent);font-size:1.9rem;display:block}.stat-card span{color:var(--muted);font-size:.84rem}.skills-grid,.projects-grid,.education-grid,.cert-grid,.language-grid{display:grid;gap:.9rem;grid-template-columns:repeat(3,minmax(0,1fr))}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card ul{margin:.8rem 0 0;padding-left:1.1rem;color:var(--muted)}.project-carousel{position:relative;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#05060773}.project-carousel--hero{display:grid;place-items:center;min-height:clamp(220px,38vw,380px);padding:.75rem}.project-carousel-empty{min-height:160px;display:grid;place-items:center;color:var(--muted);font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}.project-carousel-stage{position:relative;width:100%;height:100%;min-height:clamp(200px,32vw,340px);max-height:none;border-radius:10px;overflow:hidden;border:1px solid rgba(199,168,85,.22);background:#050607;box-shadow:0 18px 40px #00000059}.project-carousel-slide{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:0;transform:translate(18px) scale(.985);transition:opacity .45s ease,transform .45s ease;pointer-events:none;background:#050607}.project-carousel-slide.is-active{opacity:1;transform:translate(0) scale(1);pointer-events:auto;z-index:1}.project-carousel-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:2rem;height:2rem;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#0a0a0a8c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--accent-soft, #e5cb7a);font-size:1.2rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:border-color .2s ease,background .2s ease,transform .2s ease}.project-carousel-nav:hover{border-color:#c7a8558c;background:#c7a8551f;transform:translateY(-50%) scale(1.06)}.project-carousel-nav--prev{left:.55rem}.project-carousel-nav--next{right:.55rem}.project-carousel-dots{position:absolute;left:50%;bottom:.7rem;transform:translate(-50%);display:flex;gap:.35rem;z-index:2}.project-carousel-dots button{width:.42rem;height:.42rem;border-radius:999px;border:0;padding:0;background:#ffffff47;cursor:pointer;transition:width .2s ease,background .2s ease}.project-carousel-dots button.is-active{width:1.05rem;background:var(--accent, #c9a84c)}.project-action-row{margin-top:.8rem;display:flex;gap:.5rem;flex-wrap:wrap}.project-view-link{margin-top:.8rem;display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);padding:.36rem .62rem;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);transition:all .2s ease}.project-view-link:hover{border-color:var(--accent);color:var(--accent-soft);transform:translateY(-1px)}.project-period,.timeline-date{font-family:DM Mono,monospace;color:var(--accent);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase}.skill-card p,.project-card p,.timeline-item p,.timeline-item h4,.achievement-card p,.education-card p,.cert-card p,.language-card p,.contact-copy{color:var(--muted);line-height:1.7}.tags{margin-top:.9rem;display:flex;gap:.4rem;flex-wrap:wrap}.tags span,.filter-row button{border:1px solid var(--line);padding:.28rem .55rem;font-family:DM Mono,monospace;font-size:.62rem;text-transform:uppercase;color:var(--accent-soft);background:transparent}.filter-row{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.filter-row button.active{background:var(--accent);color:#111}.timeline{display:grid;gap:.9rem}.experience-title-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.experience-title-row h3{margin:0}.experience-cert-view{background:transparent;cursor:pointer;margin:0;white-space:nowrap}.certificate-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:grid;place-items:center;padding:1rem;z-index:90}.certificate-modal-panel{width:min(920px,100%);height:min(88vh,760px);background:#0d1117;border:1px solid var(--line);padding:.8rem;display:grid;grid-template-rows:auto 1fr;gap:.7rem}.certificate-close{justify-self:end;border:1px solid #d73939;background:#d73939;color:#fff;font-family:DM Mono,monospace;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;padding:.45rem .75rem;cursor:pointer}.certificate-frame,.certificate-image{width:100%;height:100%;border:0;object-fit:contain;background:#090d12}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-links,.social-links{display:grid;gap:.5rem}.contact-links a,.social-links a{border:1px solid var(--line);padding:.72rem;color:var(--text)}.resume-modal-trigger{border:1px solid var(--line);padding:.72rem;color:var(--accent-soft);background:#0a0e148c;text-align:left;font-family:DM Mono,monospace;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.resume-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:92;display:grid;place-items:center;padding:1rem;background:#000000c7}.resume-modal-panel{width:min(760px,100%);max-height:min(88vh,760px);overflow:auto;background:linear-gradient(145deg,#141b25fa,#0d1118fa);border:1px solid var(--line);padding:.9rem;display:grid;gap:.9rem}.resume-modal-list{display:grid;gap:.75rem}.resume-modal-item{border:1px solid var(--line);padding:.8rem;background:#070b119e}.resume-modal-item-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.resume-modal-item-head h3{margin:0;font-size:1.05rem}.resume-modal-primary{border:1px solid rgba(74,222,128,.55);color:#cbf8dc;background:#16a34a33;border-radius:999px;padding:.2rem .55rem;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.resume-modal-actions{margin-top:.65rem;display:flex;gap:.5rem;flex-wrap:wrap}.contact-form{background:linear-gradient(135deg,#181f29f2,#0f1319f2);border:1px solid var(--line);padding:1rem;display:grid;gap:.65rem}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);background:#05080c80;color:var(--text);padding:.7rem .8rem;font-size:.9rem;font-family:inherit}.contact-form input:focus,.contact-form textarea:focus{outline:1px solid var(--accent);border-color:var(--accent)}.contact-form button{border:1px solid var(--accent);background:var(--accent);color:#111;padding:.75rem 1rem;text-transform:uppercase;letter-spacing:.07em;font-family:DM Mono,monospace;cursor:pointer}.contact-form button:disabled{opacity:.7;cursor:not-allowed}.hp-field{position:absolute;left:-10000px;width:1px;height:1px;opacity:0}.contact-status{margin:0;font-size:.9rem}.contact-status.success{color:#8ecf7f}.contact-status.error{color:#ff9090}.reveal{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease}.reveal.visible{opacity:1;transform:translateY(0)}.chatbot{position:fixed;right:1rem;bottom:1rem;z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:.7rem}.chatbot-toggle{border:1px solid var(--accent);background:linear-gradient(135deg,var(--accent),var(--accent-soft));color:#17130a;font-family:DM Mono,monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;padding:.75rem .95rem;cursor:pointer;box-shadow:0 10px 28px #00000047}.chatbot-panel{width:min(380px,calc(100vw - 1.4rem));height:min(520px,calc(100vh - 6.5rem));display:grid;grid-template-rows:auto 1fr auto;border:1px solid var(--line);background:linear-gradient(150deg,#141920fa,#0a0d12fa);box-shadow:0 24px 45px #00000061;overflow:hidden}.chatbot-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:.75rem .9rem}.chatbot-label{margin:0;font-family:DM Mono,monospace;text-transform:uppercase;font-size:.62rem;letter-spacing:.12em;color:var(--accent)}.chatbot-header h3{margin-top:.2rem;font-size:1.1rem}.chatbot-close{border:1px solid var(--line);background:transparent;color:var(--muted);padding:.4rem .5rem;font-size:.7rem;font-family:DM Mono,monospace;text-transform:uppercase;cursor:pointer}.chatbot-messages{overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.6rem}.chatbot-message{max-width:88%;padding:.58rem .7rem;border:1px solid var(--line)}.chatbot-message p{margin:0;font-size:.92rem;line-height:1.45}.chatbot-message.assistant{align-self:flex-start;background:#c7a85514}.chatbot-message.user{align-self:flex-end;background:#ece7da0f}.chatbot-thinking{margin:.2rem 0 0;color:var(--muted);font-size:.8rem;font-family:DM Mono,monospace}.chatbot-cursor{display:inline-block;margin-left:1px;color:var(--accent, #c9a84c);animation:chatbot-blink .9s step-end infinite}@keyframes chatbot-blink{50%{opacity:0}}.chatbot-form{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:.6rem;padding:.75rem}.chatbot-form input{border:1px solid var(--line);background:#05080c8c;color:var(--text);padding:.7rem;font-size:.9rem}.chatbot-form input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.chatbot-form button{border:1px solid var(--accent);background:var(--accent);color:#16120a;font-family:DM Mono,monospace;text-transform:uppercase;font-size:.66rem;letter-spacing:.09em;padding:.72rem .8rem;cursor:pointer}.chatbot-form button:disabled{opacity:.72;cursor:not-allowed}@media (max-width: 950px){.skills-grid,.projects-grid,.education-grid,.cert-grid,.language-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid,.contact-grid{grid-template-columns:1fr}}@media (max-width: 700px){.nav-links{display:none}.hamburger{display:block}.skills-grid,.projects-grid,.education-grid,.cert-grid,.language-grid{grid-template-columns:1fr}.section{padding:4rem 1rem}.site-nav{padding:.8rem 1rem}.chatbot{right:.7rem;bottom:.7rem}.chatbot-panel{height:min(500px,calc(100vh - 5.2rem))}}:root{--home-nav-margin: clamp(.7rem, 1.8vw, 1.4rem);--home-nav-gold: #c9a84c;--home-nav-muted: #6b6b6b;--home-nav-border: rgba(201, 168, 76, .18);--home-nav-bg2: #111111}.home-nav{position:fixed;top:var(--home-nav-margin);left:var(--home-nav-margin);right:var(--home-nav-margin);z-index:100;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 2.2rem;background:#0a0a0ab8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(201,168,76,.14);border-radius:12px;box-shadow:0 8px 22px #00000047;transition:opacity .35s ease,visibility .35s ease}.home-nav.is-splash-hidden,.home-nav__mobile.is-splash-hidden{opacity:0!important;visibility:hidden!important;pointer-events:none!important}.home-nav__logo{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0;width:34px;height:34px;background:#fff;border-radius:999px;padding:2px;box-shadow:0 2px 8px #00000038;overflow:hidden}.home-nav__logo img{width:118%;height:118%;object-fit:contain;display:block;transform:scale(1.08)}.home-nav__links{display:flex;align-items:center;gap:1.75rem;list-style:none;margin:0 0 0 auto;padding:0}.home-nav__link{font-family:DM Mono,monospace;font-size:.72rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--home-nav-muted);text-decoration:none;transition:color .25s;background:none;border:none;padding:0;cursor:pointer}.home-nav__link:hover,.home-nav__link.is-active{color:var(--home-nav-gold)}.home-nav__menu-wrap{position:relative}.home-nav__menu-btn{font-family:DM Mono,monospace;font-size:.72rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--home-nav-muted);background:none;border:1px solid var(--home-nav-border);padding:.35rem .85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .25s}.home-nav__menu-btn:hover,.home-nav__menu-btn.is-open{color:var(--home-nav-gold);border-color:var(--home-nav-gold)}.home-nav__menu-arrow{display:inline-block;font-size:.6rem;transition:transform .25s ease}.home-nav__menu-btn.is-open .home-nav__menu-arrow{transform:rotate(180deg)}.home-nav__dropdown{position:absolute;top:calc(100% + .9rem);right:0;min-width:210px;background:var(--home-nav-bg2);border:1px solid var(--home-nav-border);list-style:none;padding:.55rem 0;margin:0;box-shadow:0 20px 50px #0009;opacity:0;pointer-events:none;transform:translateY(-8px);transition:all .28s cubic-bezier(.23,1,.32,1);z-index:200}.home-nav__dropdown.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.home-nav__dropdown-close{position:absolute;top:.45rem;right:.45rem;background:none;border:none;color:var(--home-nav-muted);font-size:1rem;cursor:pointer;line-height:1}.home-nav__dropdown a{display:flex;align-items:center;gap:.7rem;padding:.55rem 1.1rem;font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#e8e0d0;text-decoration:none;transition:color .2s,background .2s}.home-nav__dropdown a:hover,.home-nav__dropdown a.is-active{color:var(--home-nav-gold);background:#c9a84c0f}.home-nav__dd-num{color:#c9a84c73;font-size:.58rem;min-width:1.3rem}.home-nav__hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;z-index:201}.home-nav__hamburger span{display:block;width:24px;height:1.5px;background:var(--home-nav-gold);transition:all .3s ease;transform-origin:center}.home-nav__hamburger.is-open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.home-nav__hamburger.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}.home-nav__hamburger.is-open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.home-nav__mobile{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0af7;z-index:150;flex-direction:column;align-items:center;justify-content:center;gap:0;opacity:0;pointer-events:none;transition:opacity .35s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.home-nav__mobile.is-open{display:flex;opacity:1;pointer-events:all}.home-nav__mobile-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;color:var(--home-nav-muted);font-size:1.5rem;cursor:pointer;transition:color .2s}.home-nav__mobile-close:hover{color:var(--home-nav-gold)}.home-nav__mobile-links{list-style:none;display:flex;flex-direction:column;align-items:center;gap:0;width:100%;padding:0 2rem;margin:0;max-height:70vh;overflow-y:auto}.home-nav__mobile-links li{width:100%;border-bottom:1px solid var(--home-nav-border);overflow:hidden}.home-nav__mobile-links li:first-child{border-top:1px solid var(--home-nav-border)}.home-nav__mobile-links a{display:flex;align-items:center;justify-content:space-between;padding:1.05rem 0;font-family:Cormorant Garamond,serif;font-size:1.55rem;font-weight:300;color:#e8e0d0;text-decoration:none;transition:color .25s,padding-left .25s}.home-nav__mobile-links a:hover,.home-nav__mobile-links a.is-active{color:var(--home-nav-gold);padding-left:.5rem}.home-nav__mm-num{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.14em;color:var(--home-nav-muted)}.home-nav__mobile-footer{position:absolute;bottom:2rem;font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.12em;color:var(--home-nav-muted);text-transform:uppercase}@media (max-width: 1024px){.home-nav{padding:.8rem 1.5rem}.home-nav__links{gap:1.2rem}}@media (max-width: 768px){.home-nav{padding:.7rem 1rem;min-height:56px}.home-nav__links{display:none}.home-nav__hamburger{display:flex}}@media (max-width: 420px){.home-nav__logo{width:32px;height:32px}.home-nav__mobile-links a{font-size:1.35rem;padding:.9rem 0}}
