*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #000000;--text: #ffffff;--text-muted: #71717a;--accent: #f59e0b;--accent-fg: #000000;--border: rgba(245, 158, 11, .15);--card-bg: #0a0a0a;--header-h: 72px}body.mode-foto{--bg: #f4ede1;--text: #221a12;--text-muted: rgba(34, 26, 18, .5);--accent: #f59e0b;--accent-fg: #221a12;--border: rgba(245, 158, 11, .3);--card-bg: #ffffff}html{scroll-behavior:smooth}body{font-family:Work Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;line-height:1.6;transition:background .7s ease,color .7s ease}::selection{background:var(--accent);color:var(--accent-fg)}.noise-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;opacity:.04;transition:opacity .7s ease;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.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}body.mode-foto .noise-overlay{opacity:.07;mix-blend-mode:multiply}.cursor-preview{position:fixed;pointer-events:none;z-index:40;display:none;transform:translate(30px,-50%)}.cursor-preview.visible{display:block}body.mode-foto .cursor-preview{display:none!important}.cursor-preview img{width:300px;height:200px;object-fit:cover;filter:grayscale(1);border:1px solid rgba(245,158,11,.3);display:block}header{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--header-h);display:flex;align-items:center;justify-content:space-between;padding:0 4rem;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}header.header--scrolled{background:#000000e6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:#f59e0b14}body.mode-foto header.header--scrolled{background:#f4ede1eb;border-bottom-color:#f59e0b26}.logo{font-size:.875rem;letter-spacing:.3em;text-transform:uppercase;color:var(--text);text-decoration:none;transition:color .7s,font-style .7s,letter-spacing .7s,text-transform .7s}body.mode-foto .logo{font-family:Playfair Display,serif;font-style:italic;font-size:1rem;letter-spacing:0;text-transform:none}.header-right{display:flex;align-items:center;gap:1.5rem}.language-switcher{display:flex;gap:4px}.lang-btn{font-size:.7rem;letter-spacing:.1em;padding:4px 10px;border-radius:100px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .3s;font-family:inherit}.lang-btn.active{background:var(--accent);color:var(--accent-fg)}.lang-btn:not(.active):hover{color:var(--text)}.social-links{display:none;gap:4px}@media (min-width: 768px){.social-links{display:flex}}.social-links a{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-muted);text-decoration:none;transition:color .3s,background .3s}.social-links a:hover{color:var(--text);background:#8080801a}.icon{width:18px;height:18px;display:block}.dev-only{display:block}.foto-only,body.mode-foto .dev-only{display:none}body.mode-foto .foto-only{display:block}.hero-section{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header-h) + 2rem) 4rem 5rem;overflow:hidden}.bg-letter{position:absolute;right:-10vw;top:50%;transform:translateY(-50%);font-family:Playfair Display,serif;font-weight:700;font-size:60vw;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-text-stroke:1px rgba(245,158,11,.1);-webkit-text-fill-color:transparent;transition:-webkit-text-stroke .7s}body.mode-foto .bg-letter{-webkit-text-stroke:1px rgba(245,158,11,.18)}.mode-toggle{display:flex;align-items:center;gap:1rem;margin-bottom:3rem;position:relative;z-index:1}.mode-btn{font-family:Work Sans,sans-serif;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;background:none;border:none;border-bottom:2px solid transparent;padding-bottom:3px;cursor:pointer;transition:all .3s;color:var(--text-muted)}.mode-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.mode-btn:not(.active):hover{color:var(--text)}.mode-sep{color:var(--text-muted);opacity:.3}.hero-bio{font-size:.85rem;color:var(--text-muted);margin-top:1rem;margin-bottom:2rem;letter-spacing:.01em;transition:color .7s}body.mode-foto .hero-bio{font-family:Playfair Display,serif;font-style:italic;font-size:.95rem}.hero-content{position:relative;z-index:1}.hero-dev{display:block}body.mode-foto .hero-dev{display:none}.hero-title-dev{font-family:Playfair Display,serif;line-height:.85;letter-spacing:-.02em}.hero-title-dev .line1,.hero-title-dev .line2,.hero-title-dev .line3{display:block;font-size:clamp(4rem,14vw,12vw)}.hero-title-dev .line2{font-style:italic;color:#27272a}.accent-dot{color:var(--accent)}.hero-foto{display:none}body.mode-foto .hero-foto{display:block}.hero-title-foto{font-family:Playfair Display,serif;font-style:italic;line-height:.85;letter-spacing:-.01em}.hero-title-foto .fotoline1,.hero-title-foto .fotoline2{display:block;font-size:clamp(4rem,14vw,12vw)}.hero-title-foto .fotoline2{padding-left:8vw;color:#f59e0b}.hero-subtitle{font-size:1rem;color:var(--text-muted);max-width:480px;margin-top:2.5rem;line-height:1.7}body.mode-foto .hero-subtitle{font-family:Playfair Display,serif;font-style:italic;font-size:1.1rem}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-3px) skew(.5deg)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}to{transform:translate(0)}}body.glitch .hero-dev,body.glitch .hero-foto{animation:glitch .12s ease}.marquee-band{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1.75rem 0;transition:border-color .7s}.marquee-track{display:flex;white-space:nowrap;animation:marquee 22s linear infinite}.marquee-item{display:inline-flex;align-items:center;gap:1.5rem;margin:0 .75rem;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);transition:color .7s}body.mode-foto .marquee-item{font-family:Playfair Display,serif;font-style:italic;text-transform:none;letter-spacing:0;font-size:.9rem}.marquee-sep{color:var(--accent)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.content-section{padding:0 4rem 8rem}.content-inner{max-width:1400px;margin:0 auto;padding-top:5rem}.content-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:3rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);transition:border-color .7s}.section-label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted)}body.mode-foto .section-label{font-family:Playfair Display,serif;font-style:italic;text-transform:none;letter-spacing:0;font-size:.85rem}.projects-list{display:flex;flex-direction:column;gap:6rem}.project-entry{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.project-entry--reverse{direction:rtl}.project-entry--reverse>*{direction:ltr}.project-entry-info{display:flex;flex-direction:column;gap:1rem}.project-entry-year{font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent)}.project-entry-title{font-family:Playfair Display,serif;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:400;line-height:1.1;color:var(--text)}.project-entry-desc{font-size:.9rem;color:var(--text-muted);line-height:1.75;max-width:42ch}.project-entry-tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-tag{font-size:.7rem;letter-spacing:.06em;padding:3px 10px;border:1px solid #27272a;border-radius:100px;color:#71717a}.project-entry-links{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.25rem}.project-btn{font-size:.8rem;letter-spacing:.04em;padding:8px 18px;border-radius:100px;text-decoration:none;transition:all .3s;white-space:nowrap}.project-btn--ghost{border:1px solid #27272a;color:var(--text-muted)}.project-btn--ghost:hover{border-color:var(--accent);color:var(--text)}.project-btn--accent{background:var(--accent);color:#000;border:1px solid transparent;font-weight:500}.project-btn--accent:hover{opacity:.85}.project-entry-mockup{perspective:1000px}.screely-frame{border-radius:10px;overflow:hidden;box-shadow:0 0 0 1px #ffffff0f,0 30px 60px -20px #000c,0 10px 30px -10px #00000080;transition:transform .5s ease,box-shadow .5s ease}.project-entry:hover .screely-frame{transform:translateY(-6px) rotateX(1deg);box-shadow:0 0 0 1px #facc151a,0 40px 80px -20px #000000e6,0 15px 40px -10px #0009}.screely-chrome{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:#1a1a1a;border-bottom:1px solid #222}.screely-dots{display:flex;gap:5px;flex-shrink:0}.screely-dots span{width:11px;height:11px;border-radius:50%}.screely-dots span:nth-child(1){background:#ff5f57}.screely-dots span:nth-child(2){background:#febc2e}.screely-dots span:nth-child(3){background:#28c840}.screely-urlbar{flex:1;font-family:Courier New,monospace;font-size:.68rem;color:#52525b;background:#111;padding:3px 12px;border-radius:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.screely-screen{background:#0a0a0a;aspect-ratio:16/9;overflow:hidden}.screely-screen img{width:100%;height:100%;object-fit:cover;display:block}.carousel,.carousel-track{width:100%;height:100%}.carousel-slide{display:none;width:100%;height:100%;background:#222122}.carousel-slide.active{display:block}.carousel-slide img{width:100%;height:100%;object-fit:contain;display:block;padding:1rem}.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;border:none;color:#fff;font-size:1.4rem;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s,background .3s;z-index:2;line-height:1}.screely-frame:hover .carousel-arrow{opacity:1}.carousel-arrow:hover{background:var(--accent);color:#000}.carousel-arrow--prev{left:8px}.carousel-arrow--next{right:8px}.carousel-dots{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:5px;z-index:2}.carousel-dot{width:6px;height:6px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;transition:background .3s,transform .3s;padding:0}.carousel-dot.active{background:var(--accent);transform:scale(1.3)}.screely-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,hsl(var(--hue, 210),35%,7%),hsl(calc(var(--hue, 210) + 40),25%,11%))}.screely-initial{font-family:Playfair Display,serif;font-size:6rem;font-weight:700;color:#f59e0b12;-webkit-user-select:none;user-select:none;line-height:1}@media (max-width: 900px){.project-entry{grid-template-columns:1fr;gap:2rem}.project-entry--reverse{direction:ltr}.project-entry-mockup{order:-1}.projects-list{gap:4rem}}.photo-gallery{grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;gap:1.5rem;align-items:start}body.mode-foto .photo-gallery{display:grid}.photo-print{background:#fff;padding:.65rem;box-shadow:0 15px 40px -15px #221a1259;transition:transform .5s ease,box-shadow .5s ease}.photo-print:hover{transform:rotate(0)!important;box-shadow:0 25px 55px -15px #221a1280}.photo-print a{display:block;text-decoration:none;color:inherit}.photo-print-img{position:relative;overflow:hidden;width:100%}.photo-print-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s ease}.photo-print:hover .photo-print-img img{transform:scale(1.05)}.photo-print-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#f59e0b00;transition:background .5s ease}.photo-print:hover .photo-print-overlay{background:#f59e0b14}.photo-meta-badge{position:absolute;top:10px;left:10px;background:#221a12b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);padding:3px 10px;border-radius:100px;font-size:10px;color:#f4ede1;letter-spacing:.08em;display:flex;align-items:center;gap:5px;opacity:0;transform:translateY(4px);transition:opacity .4s,transform .4s}.photo-meta-badge .photo-camera-icon{width:12px;height:12px;color:#f4ede1}.photo-print:hover .photo-meta-badge{opacity:1;transform:translateY(0)}.photo-caption{display:flex;align-items:center;justify-content:space-between;padding:.9rem 4px}.photo-caption-text .photo-category{display:block;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}.photo-caption-text .photo-title{font-family:Playfair Display,serif;font-style:italic;font-size:1.1rem;color:#221a12;line-height:1.2;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.photo-caption>.photo-camera-icon{width:18px;height:18px;color:#221a1240;flex-shrink:0;transition:color .3s}.photo-print:hover .photo-caption>.photo-camera-icon{color:var(--accent)}.photo-status{grid-column:1 / -1;text-align:center;color:var(--text-muted);padding:4rem 0;font-size:.875rem;line-height:1.9}.photo-status code{font-family:Courier New,monospace;background:#8080801a;padding:.15rem .4rem;border-radius:3px;font-size:.85em}.photo-status--error{color:#dc2626}.contact-section{position:relative;z-index:1;padding:6rem 4rem 8rem;border-top:1px solid var(--border);transition:border-color .7s}.contact-inner{max-width:900px}.contact-label{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2rem}.contact-heading{font-family:Playfair Display,serif;font-size:clamp(3rem,7vw,7rem);font-weight:700;line-height:1;margin-bottom:3rem;letter-spacing:-.02em}body.mode-foto .contact-heading{font-style:italic}.word{display:inline-block;white-space:nowrap}.letter{display:inline-block;transition:transform .2s ease,color .2s ease;cursor:default}.letter:hover{transform:translateY(-10px);color:var(--accent)}.contact-email{display:inline-flex;align-items:center;gap:.75rem;font-size:1.1rem;color:var(--text-muted);text-decoration:none;transition:color .3s}.contact-email:hover{color:var(--accent)}.contact-email svg{width:18px;height:18px;transition:transform .3s}.contact-email:hover svg{transform:rotate(45deg)}footer{position:relative;overflow:hidden;border-top:1px solid var(--border);transition:border-color .7s;z-index:1}.footer-content{padding:2rem 4rem;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.footer-year{font-size:.75rem;color:var(--accent);opacity:.7}.footer-tagline{font-size:.75rem;color:var(--text-muted)}.footer-bg-text{position:absolute;bottom:0;left:0;right:0;text-align:center;font-family:Playfair Display,serif;font-weight:700;font-size:22vw;line-height:.9;transform:translateY(38%);pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-text-stroke:1px rgba(245,158,11,.12);-webkit-text-fill-color:transparent;transition:-webkit-text-stroke .7s}body.mode-foto .footer-bg-text{font-style:italic;-webkit-text-stroke:1px rgba(245,158,11,.2)}@media (max-width: 1024px){.photo-gallery{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){header{padding:0 1.5rem}.header-right{gap:1rem}.hero-section{padding:calc(var(--header-h) + 1rem) 1.5rem 4rem}.content-section{padding:0 1.5rem 6rem}.contact-section{padding:4rem 1.5rem 6rem}.footer-content{padding:2rem 1.5rem}.photo-gallery{grid-template-columns:repeat(2,1fr)}}
