@import"https://cdn.jsdelivr.net/npm/geist@1.3.1/dist/fonts/geist-sans/style.css";:root{--c-bg: #02050A;--c-bg-card: #02050A;--c-text: #ffffff;--c-text-70: rgba(255, 255, 255, .7);--c-text-30: rgba(255, 255, 255, .3);--c-text-15: rgba(255, 255, 255, .15);--c-text-05: rgba(255, 255, 255, .05);--c-accent: rgba(255, 255, 255, .9);--c-accent-soft: rgba(255, 255, 255, .06);--c-card-hover: rgba(255, 255, 255, .02);--font-display: "Geist", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Geist", -apple-system, BlinkMacSystemFont, sans-serif;--font: "Geist", -apple-system, BlinkMacSystemFont, sans-serif;--ease-cinematic: cubic-bezier(.19, 1, .22, 1);--transition-slow: .8s var(--ease-cinematic);--transition-fast: .3s ease}[data-theme=light]{--c-bg: #FAFAFA;--c-bg-card: #FAFAFA;--c-text: #1a1a1a;--c-text-70: rgba(26, 26, 26, .7);--c-text-30: rgba(26, 26, 26, .3);--c-text-15: rgba(26, 26, 26, .12);--c-text-05: rgba(26, 26, 26, .05);--c-accent: rgba(26, 26, 26, .85);--c-accent-soft: rgba(26, 26, 26, .06);--c-card-hover: rgba(0, 0, 0, .02)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--c-bg);color:var(--c-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;line-height:1.4;transition:background-color .6s ease,color .6s ease}.theme-toggle{position:fixed;top:28px;right:28px;z-index:100;width:36px;height:36px;border-radius:50%;border:1px solid var(--c-text-30);background:transparent;color:var(--c-text);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.theme-toggle:hover{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}.theme-toggle svg{width:16px;height:16px;stroke:currentColor;stroke-width:1.5;fill:none;transition:opacity .3s ease}.theme-toggle .icon-moon{display:block}.theme-toggle .icon-sun,[data-theme=light] .theme-toggle .icon-moon{display:none}[data-theme=light] .theme-toggle .icon-sun{display:block}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:2rem}.hero-name{font-family:var(--font-display);font-size:clamp(34px,5.5vw,52px);font-weight:400;letter-spacing:-.04em;margin-bottom:8px;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .3s forwards}.hero-name em{font-style:normal}.hero-dot{width:3px;height:3px;background-color:var(--c-text-30);border-radius:50%;margin-bottom:28px;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .5s forwards}.hero-intro{text-align:center;font-size:14px;font-weight:400;color:var(--c-text-70);max-width:420px;margin-bottom:44px;line-height:1.7;letter-spacing:-.01em;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .7s forwards}.hero-nav{display:flex;align-items:center;gap:6px;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .9s forwards;flex-wrap:wrap;justify-content:center}.pill{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 18px;border:1px solid var(--c-text-30);border-radius:100px;font-size:11px;font-weight:400;color:var(--c-text);text-decoration:none;letter-spacing:.03em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all var(--transition-fast);background:transparent;cursor:pointer;font-family:var(--font-body)}.pill.icon-only{width:34px;padding:0;border-radius:50%}.pill svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.2;fill:none}.pill:hover{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}.content-wrapper{position:relative;z-index:10;background-color:var(--c-bg);padding-top:10vh;padding-bottom:10vh;transition:background-color .6s ease}.content-wrapper:before{content:"";position:absolute;top:0;left:5vw;right:5vw;height:1px;background:var(--c-text-15)}.container{max-width:1100px;margin:0 auto;padding:0 5vw}.section-header{display:flex;align-items:center;gap:16px;margin-bottom:56px}.section-dot{width:4px;height:4px;background:var(--c-text-30)}.section-title{font-size:12px;letter-spacing:.02em;color:var(--c-text-70);font-weight:400}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--c-text-15);border:1px solid var(--c-text-15);margin-bottom:140px}.project-card{background:var(--c-bg-card);padding:0;display:flex;flex-direction:column;transition:background var(--transition-fast);position:relative;overflow:hidden;text-decoration:none;color:inherit;cursor:pointer}.project-card:hover{background:var(--c-card-hover)}.project-card:hover .project-img img{transform:scale(1.03)}.project-img{width:100%;height:200px;overflow:hidden;border-bottom:1px solid var(--c-text-05)}.project-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-cinematic);filter:grayscale(.3)}.project-img--contain img{object-fit:contain;background:#f8f8f8}[data-theme=light] .project-img img{filter:grayscale(.1)}.project-body{padding:36px 40px 40px;display:flex;flex-direction:column;flex:1}.project-meta-top{display:flex;justify-content:space-between;font-size:10px;font-family:Geist,monospace;color:var(--c-text-30);margin-bottom:24px;letter-spacing:.02em}.project-tag{display:inline-flex;align-items:center;gap:5px}.project-tag-dot{width:5px;height:5px;border-radius:50%;background:#4ade80}.project-tag-dot.archived{background:var(--c-text-30)}.project-tag-dot.building{background:#fbbf24}.project-name{font-family:var(--font-display);font-size:26px;font-weight:400;letter-spacing:-.02em;margin-bottom:14px;color:var(--c-text)}.project-desc{font-size:13px;color:var(--c-text-70);line-height:1.7;margin-bottom:28px;max-width:85%}.project-footer{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--c-text-05);padding-top:20px}.meta-block{display:flex;flex-direction:column;gap:4px}.meta-label{font-size:9px;color:var(--c-text-30);letter-spacing:.02em}.meta-value{font-size:11px;color:var(--c-text-70)}.blog-list{display:flex;flex-direction:column;margin-bottom:140px}.blog-row{display:flex;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--c-text-15);text-decoration:none;transition:padding-left var(--transition-fast);color:inherit}.blog-row:first-child{border-top:1px solid var(--c-text-15)}.blog-row:hover{padding-left:16px}.blog-date{flex:0 0 110px;font-size:11px;color:var(--c-text-70);font-variant-numeric:tabular-nums}.blog-tag{flex:0 0 100px;font-size:10px;color:var(--c-text-70);letter-spacing:.02em}.blog-title{flex:1;font-size:16px;font-weight:400;color:var(--c-text);letter-spacing:-.01em;transition:color var(--transition-fast)}.blog-row:hover .blog-title{color:var(--c-text)}.blog-arrow{font-size:11px;color:var(--c-text-30);opacity:0;transform:translate(-10px);transition:all var(--transition-fast);margin-left:16px}.blog-row:hover .blog-arrow{opacity:1;transform:translate(0);color:var(--c-text)}.newsletter-section{margin-bottom:140px}.newsletter-box{border:1px solid var(--c-text-15);padding:56px;display:flex;align-items:center;justify-content:space-between;gap:40px}.newsletter-text h3{font-family:var(--font-display);font-size:24px;font-weight:400;margin-bottom:10px}.newsletter-text p{font-size:13px;color:var(--c-text-70);line-height:1.6;max-width:380px}.newsletter-form{display:flex;gap:8px}.newsletter-input{height:42px;padding:0 18px;background:transparent;border:1px solid var(--c-text-30);border-radius:100px;color:var(--c-text);font-size:12px;font-family:var(--font-body);width:260px;outline:none;transition:border-color var(--transition-fast)}.newsletter-input::placeholder{color:var(--c-text-30)}.newsletter-input:focus{border-color:var(--c-text)}.newsletter-btn{height:42px;padding:0 24px;border:1px solid var(--c-text-30);border-radius:100px;background:transparent;color:var(--c-text);font-size:11px;font-family:var(--font-body);letter-spacing:.04em;cursor:pointer;transition:all var(--transition-fast)}.newsletter-message{font-size:13px;color:var(--c-text-70);letter-spacing:.01em}.newsletter-btn:hover{background:var(--c-text);color:var(--c-bg);border-color:var(--c-text)}.site-footer{padding:60px 0;border-top:1px solid var(--c-text-15)}.footer-inner{display:flex;justify-content:space-between;align-items:center}.footer-left{font-size:11px;color:var(--c-text-30)}.footer-links{display:flex;gap:20px}.footer-links a{font-size:11px;color:var(--c-text-30);text-decoration:none;transition:color var(--transition-fast)}.footer-links a:hover{color:var(--c-text)}.top-nav{position:fixed;top:28px;left:28px;z-index:100}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--c-text-30);text-decoration:none;transition:color var(--transition-fast);letter-spacing:.01em}.back-link:hover{color:var(--c-text)}.back-link svg{width:14px;height:14px;stroke:currentColor;stroke-width:1.5;fill:none}.article-header{max-width:680px;margin:0 auto;padding:160px 24px 0;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .2s forwards}.article-meta{display:flex;align-items:center;gap:16px;margin-bottom:32px;font-size:12px;color:var(--c-text-30)}.article-meta-dot{width:3px;height:3px;background:var(--c-text-30);border-radius:50%}.article-title{font-size:clamp(28px,4.5vw,40px);font-weight:400;letter-spacing:-.03em;line-height:1.2;margin-bottom:20px}.article-subtitle{font-size:15px;color:var(--c-text-70);line-height:1.7;max-width:520px}.article-divider{max-width:680px;margin:48px auto;padding:0 24px;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .4s forwards}.article-divider-line{height:1px;background:var(--c-text-15)}.article-body{max-width:680px;margin:0 auto;padding:0 24px 120px;opacity:0;animation:fadeUp 1s var(--ease-cinematic) .5s forwards}.article-body p{font-size:15px;color:var(--c-text-70);line-height:1.8;margin-bottom:24px}.article-body p strong{color:var(--c-text);font-weight:500}.article-body p em{font-style:italic}.article-body h2{font-size:20px;font-weight:400;letter-spacing:-.02em;color:var(--c-text);margin-top:56px;margin-bottom:24px}.article-body blockquote{border-left:1px solid var(--c-text-15);padding-left:24px;margin:32px 0}.article-body blockquote p{color:var(--c-text-30);font-style:italic}.article-body hr{border:none;height:1px;background:var(--c-text-15);margin:48px 0}.article-footer{max-width:680px;margin:0 auto;padding:48px 24px 80px;border-top:1px solid var(--c-text-15)}.article-footer-inner{display:flex;justify-content:space-between;align-items:flex-start}.author-block{display:flex;flex-direction:column;gap:4px}.author-name{font-size:13px;color:var(--c-text);font-weight:400}.author-desc{font-size:12px;color:var(--c-text-30)}.share-links{display:flex;gap:16px}.share-links a{font-size:11px;color:var(--c-text-30);text-decoration:none;transition:color var(--transition-fast)}.share-links a:hover{color:var(--c-text)}.more-posts{max-width:680px;margin:0 auto;padding:0 24px 120px}.more-posts-title{font-size:12px;color:var(--c-text-30);margin-bottom:24px;letter-spacing:.02em}.more-posts-list{display:flex;flex-direction:column}.more-post-row{display:flex;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--c-text-15);text-decoration:none;transition:padding-left var(--transition-fast);color:inherit}.more-post-row:first-child{border-top:1px solid var(--c-text-15)}.more-post-row:hover{padding-left:12px}.more-post-date{flex:0 0 100px;font-size:11px;color:var(--c-text-70);font-variant-numeric:tabular-nums}.more-post-title{flex:1;font-size:14px;font-weight:300;color:var(--c-text);transition:color var(--transition-fast)}.more-post-row:hover .more-post-title{color:var(--c-text)}.more-post-arrow{font-size:11px;color:var(--c-text-30);opacity:0;transform:translate(-8px);transition:all var(--transition-fast);margin-left:12px}.more-post-row:hover .more-post-arrow{opacity:1;transform:translate(0);color:var(--c-text)}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.project-grid{grid-template-columns:1fr}.blog-row{flex-direction:column;gap:6px}.blog-date,.blog-tag{flex:none}.newsletter-box{flex-direction:column;padding:40px 32px;text-align:center}.newsletter-text p{max-width:100%}.newsletter-form{flex-direction:column;width:100%}.newsletter-input{width:100%}.project-card{padding:0}.project-body{padding:28px 24px 32px}.project-img{height:160px}.project-footer{grid-template-columns:repeat(3,1fr);gap:12px}}@media(max-width:600px){.article-header{padding-top:120px}.article-footer-inner{flex-direction:column;gap:24px}.more-post-row{flex-direction:column;gap:4px}.more-post-date{flex:none}}@media(max-width:480px){.hero-name{font-size:28px}.project-name{font-size:22px}}
