*{margin:0;padding:0;box-sizing:border-box}::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;background-color:#fff;color:#000;min-height:100vh;line-height:1.7;font-size:16px}.split-container{min-height:100vh;display:flex}.left-panel{width:50%;height:100vh;padding:100px 80px 60px;overflow-y:auto;position:fixed;left:0;top:0;z-index:10;display:flex;justify-content:center}.left-content{max-width:540px;width:100%}.right-panel{width:50%;margin-left:50%;min-height:100vh;background:#fff;padding:100px 60px 60px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:40px}.announcement-banner{position:fixed;top:0;left:0;right:0;background:#000;color:#fff;z-index:1000;padding:12px 20px}.announcement-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:15px;font-size:14px;text-align:center}.announcement-content span{flex:1 1}.announcement-content a{color:#fff;text-decoration:underline;font-weight:500}.announcement-content a:hover{opacity:.8}.banner-close{background:none;border:none;color:#fff;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s ease;flex-shrink:0}.banner-close:hover{opacity:1}.dark-mode .announcement-banner{background:#fff;color:#000}.dark-mode .announcement-content a,.dark-mode .banner-close{color:#000}.theme-toggle{position:fixed;top:60px;right:30px;z-index:100;background:none;border:none;cursor:pointer;padding:8px;border-radius:50%;transition:background-color .2s ease}.theme-toggle:hover{background-color:rgba(0,0,0,.05)}.theme-toggle svg{width:20px;height:20px;color:#333;transition:color .2s ease}.dark-mode{color:#f0f0f0}.dark-mode,.dark-mode .left-panel,.dark-mode .right-panel{background-color:#0a0a0f}.dark-mode .left-content li,.dark-mode .left-content p{color:#a0a0a8}.dark-mode .left-content a{color:#f0f0f0}.dark-mode .left-content a:hover{color:#a0a0a8}.dark-mode .visual-caption{color:#666}.dark-mode .theme-toggle:hover{background-color:hsla(0,0%,100%,.1)}.dark-mode .theme-toggle svg{color:#f0f0f0}.visual-item{width:100%;max-width:450px}.visual-item .demo-video{width:100%;height:auto;border-radius:0;box-shadow:0 8px 30px rgba(0,0,0,.15)}.memos-intro{font-size:15px;color:#666}.site-footer{margin-top:80px;padding:40px 0;text-align:left;font-size:14px}.site-footer a{color:#999;text-decoration:none;transition:color .3s ease}.site-footer a:hover{color:#000}.dark-mode .site-footer a{color:#666}.dark-mode .site-footer a:hover{color:#f0f0f0}.footer-separator{margin:0 10px;color:#ccc}.dark-mode .footer-separator{color:#444}.memo-container{min-height:100vh;display:flex;justify-content:center;padding:80px 20px}.memo-content{max-width:640px;width:100%}.left-content h1,.memo-content h1{font-size:28px;font-weight:600;margin-bottom:30px;letter-spacing:-.02em}.left-content h2,.memo-content h2{font-size:18px;font-weight:600;margin-top:40px;margin-bottom:15px;letter-spacing:-.01em}.left-content p,.memo-content p{margin-bottom:15px;color:#333;font-size:15px;line-height:1.6}.left-content .intro,.memo-content .intro{font-size:15px}.memo-content .updated{color:#888;font-size:14px;margin-bottom:20px}.left-content a,.memo-content a{color:#000;text-decoration:underline;text-underline-offset:2px;transition:color .2s ease}.left-content a:hover,.memo-content a:hover{color:#666}.left-content ul{list-style:none;padding:0}.left-content li{margin-bottom:8px;font-size:14px;color:#333}.video-container{margin:30px 0;border-radius:12px;overflow:hidden;background:#000}.demo-video{width:100%;height:auto;display:block}.memo-item{margin-bottom:20px}.memo-item a{font-weight:500;font-size:15px}.memo-item .memo-desc,.memo-item .memo-description{margin-top:4px;margin-bottom:0;color:#666;font-size:15px;font-style:italic}.creative-projects{margin-top:30px}.memo-item.upcoming{margin-top:30px;padding-top:20px;border-top:1px solid #eee}.memo-item.upcoming p{margin-bottom:8px}.memo-content ul{list-style:disc;padding-left:20px;margin-bottom:20px}.memo-content li{margin-bottom:12px;color:#333}.talks-list li{margin-bottom:15px}.publications-item{font-size:14px;margin-bottom:8px}.footer-link{margin-top:60px;padding-top:30px;border-top:1px solid #eee}.footer-link a{font-size:14px;color:#888;text-decoration:none;transition:color .2s ease}.footer-link a:hover{color:#000}.photography-container{width:100%;max-width:1200px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.photography-header{position:fixed;top:40px;left:40px;z-index:10;max-width:280px}.back-link{display:inline-block;font-size:13px;color:#888;text-decoration:none;margin-bottom:30px;transition:color .2s ease}.back-link:hover{color:#000}.photographer-name{font-size:14px;font-weight:400;margin-bottom:20px;letter-spacing:.02em}.social-handle{font-size:12px;font-weight:300;margin-bottom:20px;margin-top:-15px}.social-handle a{color:#ea33c4;text-decoration:none;transition:color .2s ease}.social-handle a:hover{color:#000;text-decoration:underline}.description{font-size:14px;font-weight:300;line-height:1.5;color:#333}.photography-main{flex:1 1;flex-direction:column;padding:60px 20px 40px;margin-left:320px}.photo-container,.photography-main{display:flex;align-items:center;justify-content:center}.photo-container{max-width:100%;max-height:70vh;margin-bottom:40px}.photo-container img{width:100%;height:auto;object-fit:contain;max-height:70vh}.photo-info{text-align:left;max-width:100%;width:100%;margin-top:0}.photo-container img[src*=Niavaran]{transform:rotate(90deg);max-width:70vh;max-height:100%}.photo-title{font-size:14px;font-weight:400;margin-bottom:10px;letter-spacing:.02em;color:#000;line-height:1.3}.photo-details{font-size:13px;font-weight:300;color:#555;line-height:1.4}.photo-log{margin-top:30px;font-size:12px;font-weight:300;line-height:1.8}.photo-log a{color:#333;text-decoration:none;transition:color .2s ease;cursor:pointer}.photo-log a:hover{color:#000;text-decoration:underline}.photo-log-entry{margin-bottom:2px}@media (max-width:1024px){.left-panel{padding:40px 30px 40px 60px}.left-content{max-width:100%}.right-panel{padding:40px 30px}}@media (max-width:768px){.split-container{flex-direction:column}.left-panel{width:100%;height:auto;min-height:auto;position:relative;padding:90px 25px 40px}.left-content{max-width:100%;margin:0}.left-content h1{font-size:26px}.left-content h2{font-size:18px;margin-top:35px;margin-bottom:15px}.left-content p{font-size:15px;margin-bottom:15px}.left-content .intro{font-size:15px}.memo-item{margin-bottom:18px}.memo-item .memo-desc,.memo-item a,.memos-intro{font-size:15px}.talks-list li{font-size:14px;margin-bottom:8px}.right-panel{width:100%;height:auto;min-height:auto;margin-left:0;position:relative;padding:30px 25px;background:#f5f5f5}.visual-item{max-width:100%}.visual-item .demo-video{border-radius:8px}.theme-toggle{top:70px;right:15px}.bouncing-character{display:block;opacity:.4}.photography-container{flex-direction:column}.photography-header{position:relative;top:auto;left:auto;max-width:100%;padding:20px;text-align:center;border-bottom:1px solid #eee;margin-bottom:0}.photography-main{margin-left:0;padding:40px 20px;min-height:auto}.photo-container{max-width:100%;max-height:60vh;margin-bottom:30px}.photo-info{text-align:center;max-width:100%}.photo-title{font-size:13px;margin-bottom:8px}.photo-details{font-size:12px}.description{font-size:13px;margin-bottom:20px}.photo-log{margin-top:20px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.photo-log-entry{margin-bottom:0}.playground-container{padding:20px 15px}.playground-text-content{padding:20px;font-size:14px}.playground-text-content p{font-size:14px;line-height:1.7}}@media (max-width:480px){.left-panel{padding:85px 20px 30px}.left-content h1{font-size:24px;margin-bottom:20px}.left-content h2{font-size:17px;margin-top:30px;margin-bottom:12px}.left-content p{font-size:14px;margin-bottom:12px}.memo-item .memo-desc,.memo-item a{font-size:14px}.memos-intro{font-size:15px}.talks-list li{font-size:14px}.right-panel{padding:25px 20px}.photography-header{padding:15px}.photography-main{padding:20px 15px}.photo-container{max-width:100%;max-height:50vh;margin-bottom:20px}.photographer-name{font-size:13px;margin-bottom:15px}.social-handle{font-size:11px;margin-bottom:15px}.description,.photo-title{font-size:12px}.photo-details,.photo-log{font-size:11px}.photo-log{gap:8px}.playground-text-content{padding:15px}.playground-text-content p{font-size:13px}}