.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Poppins,sans-serif;font-weight:400;background:#fff;color:#000;line-height:1.6;cursor:none}body.page-transition-out{pointer-events:none}body.page-transition-in>:not(.cursor-dot):not(.site-header){animation:pageFadeIn .6s ease forwards}body.page-transition-out>:not(.cursor-dot):not(.site-header){animation:pageFadeOut .45s ease forwards}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pageFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3{font-weight:600}body,a,button,input,label,.project-image,.project-labels,.preset-question{cursor:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}body{cursor:auto}}#navbar{position:fixed;top:0;left:0;width:100%;background:#fff;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;z-index:1000;transition:top .3s}.nav-left{display:flex;align-items:center;gap:10px}.logo-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.logo{height:30px}.site-title{font-weight:700}.nav-right{display:flex;gap:20px;list-style:none;margin:0;padding:0}.nav-right li{display:flex}.nav-right a{text-decoration:none;color:#000;font-weight:500}.nav-toggle{position:relative;display:none;margin-left:auto;width:44px;height:44px;border-radius:22px;border:none;background:transparent;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,transform .2s ease}.nav-toggle:hover,.nav-toggle:focus-visible{background:#00000014;outline:none}.nav-toggle-bar{position:absolute;left:50%;width:18px;height:2px;background:#000;border-radius:999px;transition:transform .35s ease,opacity .2s ease;transform-origin:center}.nav-toggle-bar:nth-child(1){transform:translate(-50%,calc(-50% - 7px))}.nav-toggle-bar:nth-child(2){transform:translate(-50%,-50%)}.nav-toggle-bar:nth-child(3){transform:translate(-50%,calc(-50% + 7px))}.nav-toggle.is-active .nav-toggle-bar:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}.nav-toggle.is-active .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle.is-active .nav-toggle-bar:nth-child(3){transform:translate(-50%,-50%) rotate(-45deg)}body.nav-menu-open{overflow:hidden}.nav-close{display:none;position:fixed;top:calc(1rem + env(safe-area-inset-top));right:calc(1rem + env(safe-area-inset-right));width:44px;height:44px;border-radius:22px;border:none;background:#0000000f;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,transform .2s ease;transform:scale(1);z-index:1003}.nav-close.is-visible{display:inline-flex}.nav-close:hover,.nav-close:focus-visible{background:#0000001f;outline:none}.nav-close-icon{position:relative;width:18px;height:18px}.nav-close-icon:before,.nav-close-icon:after{content:"";position:absolute;top:50%;left:50%;width:18px;height:2px;background:#000;border-radius:999px;transform-origin:center}.nav-close-icon:before{transform:translate(-50%,-50%) rotate(45deg)}.nav-close-icon:after{transform:translate(-50%,-50%) rotate(-45deg)}@media(max-width:768px){#navbar{padding:.75rem 1rem;gap:1rem}.logo{height:26px}.site-title{display:none}html.js-ready .nav-toggle{display:inline-flex}html.js-ready .nav-right{position:fixed;inset:0;margin:0;padding:calc(5rem + env(safe-area-inset-top)) 1rem calc(3rem + env(safe-area-inset-bottom));list-style:none;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:1.5rem;background:#fff;overflow-y:auto;transform:translateY(16px);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;z-index:1002}html.js-ready .nav-right.is-open{opacity:1;transform:translateY(0);pointer-events:auto}html.js-ready .nav-right li{display:block}html.js-ready .nav-right a{width:100%;display:block;padding:.25rem 0;font-size:1.2rem;font-weight:600}html.js-ready body.nav-menu-open #navbar{box-shadow:0 8px 24px #0000001f}html.js-ready body.nav-menu-open .nav-toggle{opacity:0;pointer-events:none}html.js-ready body.nav-menu-open .nav-close{transform:scale(1.02)}}.intro-with-chat{display:flex;flex-direction:column;padding:120px 0 5vw;justify-content:center;align-items:center;gap:2.5rem;text-align:center}.project{break-inside:avoid;margin-bottom:.5rem;border-radius:12px;overflow:hidden;position:relative}.project-link{display:block}.project-figure{margin:0;position:relative}.project-image{border-radius:12px;overflow:hidden;transition:transform .3s ease,opacity .5s ease}.project img,.project video{width:100%;height:auto;object-fit:cover;display:block;border-radius:12px;transition:transform .3s ease,opacity .5s ease;opacity:0;transform:translateY(50px)}.project img.visible,.project video.visible{opacity:1;transform:translateY(0)}.project:hover img,.project:hover video{transform:scale(1.05)}.project-labels{position:absolute;bottom:12px;left:12px;display:flex;gap:12px;background:#fff;color:#000;padding:6px 10px;border-radius:6px;font-size:.9rem;opacity:0;transition:opacity .3s ease;pointer-events:none}.project:hover .project-labels,.project:hover h3{opacity:1}.hover-underline{display:inline-block;position:relative;cursor:pointer}.hover-underline:after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:#000;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.hover-underline:hover:after{transform:scaleX(1)}.cursor-dot{position:fixed;top:0;left:0;width:20px;height:20px;background-color:#fff;border-radius:50%;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);mix-blend-mode:difference;transition:width .2s ease,height .2s ease}.scroll-arrow{position:fixed;bottom:20px;left:50%;transform:translate(-50%);font-size:2rem;color:#000;cursor:pointer;opacity:1;transition:opacity .3s ease-in-out}.scroll-arrow.hidden{opacity:0}.lightbox{display:none;position:fixed;z-index:9999;padding-top:60px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000000d9}.lightbox-content{margin:auto;display:block;max-width:90%;max-height:90%}.lightbox-close,.lightbox-nav{position:fixed;z-index:10000;background:#ffffffeb;color:#000;border:none;border-radius:50%;width:44px;height:44px;font-size:28px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease;box-shadow:0 4px 12px #00000040}.lightbox-close:hover,.lightbox-nav:hover{background:#fff;transform:scale(1.05)}.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline:2px solid #fff;outline-offset:2px}.lightbox-close{top:20px;right:20px}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:32px;padding-bottom:4px}.lightbox-nav:hover{transform:translateY(-50%) scale(1.05)}.lightbox-prev{left:20px}.lightbox-next{right:20px}@media(max-width:600px){.lightbox-close,.lightbox-nav{width:38px;height:38px;font-size:22px}.lightbox-nav{font-size:26px}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-close{top:10px;right:10px}}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 2rem;font-size:.9rem;color:#666;background:#fff;position:relative;z-index:1}.site-footer p{margin:0}.site-footer .contact-nav{display:flex;align-items:center;gap:1.5rem}.site-footer .contact-nav a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}@media(max-width:480px){.site-footer{flex-direction:column;gap:.6rem;padding:1.25rem 1rem;text-align:center}}@media(max-width:768px)and (min-width:481px){.site-footer{padding:1.25rem 1rem}}:root{--bg: #ffffff;--fg: #000000;--muted: #666666;--muted-2: #777777;--subtitle: #555555;--surface: #ffffff;--surface-alt: #f0f0f0;--surface-alt-2: #f5f5f5;--border: rgba(0, 0, 0, .12);--accent-bg: #000000;--accent-fg: #ffffff;--nav-bg: #ffffff;--shadow: 0 12px 30px rgba(0, 0, 0, .08)}:root[data-theme=dark]{--bg: #0d0d0d;--fg: #f4f4f4;--muted: #9a9a9a;--muted-2: #b0b0b0;--subtitle: #c0c0c0;--surface: #161616;--surface-alt: #1f1f1f;--surface-alt-2: #242424;--border: rgba(255, 255, 255, .14);--accent-bg: #f4f4f4;--accent-fg: #0d0d0d;--nav-bg: rgba(13, 13, 13, .96);--shadow: 0 12px 30px rgba(0, 0, 0, .5)}[data-theme=dark] body{background:var(--bg);color:var(--fg)}[data-theme=dark] #navbar{background:var(--nav-bg)}[data-theme=dark] .nav-right a,[data-theme=dark] .site-title{color:var(--fg)}[data-theme=dark] .site-footer{background:var(--bg);color:var(--muted)}[data-theme=dark] .project-intro,[data-theme=dark] .project-content{background:var(--bg);color:var(--fg)}[data-theme=dark] .title{color:var(--fg)}[data-theme=dark] .subtitle{color:var(--subtitle)}[data-theme=dark] .meta-label{color:var(--muted-2)}[data-theme=dark] .meta-value,[data-theme=dark] .project-intro-right{color:var(--fg)}[data-theme=dark] .image-caption{color:var(--muted-2)}[data-theme=dark] .project-nav{background:var(--bg);border-top-color:var(--border)}[data-theme=dark] .project-nav-link:hover,[data-theme=dark] .project-nav-thumb{background:var(--surface-alt)}[data-theme=dark] .project-nav-label{color:var(--muted-2)}[data-theme=dark] .project-nav-title{color:var(--fg)}[data-theme=dark] .photo-strip-wrapper{background:var(--bg)}[data-theme=dark] .about-list li:before{color:var(--muted)}[data-theme=dark] .chat-input input{background:var(--surface-alt);color:var(--fg)}[data-theme=dark] .chat-input input::placeholder{color:var(--muted)}[data-theme=dark] .chat-send-button{background:var(--surface);color:var(--fg)}[data-theme=dark] .chat-send-button:hover{background:var(--fg);color:var(--bg)}[data-theme=dark] .chat-message.user{background:var(--accent-bg);color:var(--accent-fg)}[data-theme=dark] .chat-message.ai{background:var(--surface-alt);color:var(--fg)}[data-theme=dark] .preset-question{background:var(--surface);color:var(--fg);border-color:var(--border)}[data-theme=dark] .preset-question:hover{background:var(--fg);color:var(--bg)}[data-theme=dark] .chat-media-card{background:var(--surface);box-shadow:var(--shadow)}[data-theme=dark] .chat-media-desc{color:var(--muted)}[data-theme=dark] body[data-page=chat] .chat-box,[data-theme=dark] body[data-page=chat] .chat-input input{background:var(--surface-alt)}[data-theme=dark] html.js-ready .nav-right{background:var(--bg)}[data-theme=dark] .nav-toggle-bar,[data-theme=dark] .nav-close-icon:before,[data-theme=dark] .nav-close-icon:after{background:var(--fg)}[data-theme=dark] .nav-toggle:hover,[data-theme=dark] .nav-toggle:focus-visible,[data-theme=dark] .nav-close{background:#ffffff1f}[data-theme=dark] .hover-underline:after{background:var(--fg)}[data-theme=dark] .logo,[data-theme=dark] .dog-head{filter:invert(1)}.nav-right,.nav-right li{align-items:center}.theme-toggle{background:transparent;border:none;cursor:pointer;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:inherit;padding:0;border-radius:50%;transition:background .2s ease,transform .2s ease}.theme-toggle:hover,.theme-toggle:focus-visible{background:#7f7f7f24;outline:none}.theme-toggle:active{transform:scale(.94)}.theme-toggle svg{width:18px;height:18px;display:block}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:block}[data-theme=dark] .theme-toggle .icon-moon{display:none}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
