:root{--bg: #1a1612;--bg-warm: #252019;--surface: #2c2620;--surface-alt: #3d352c;--text: #e8e4df;--text-muted: #c4beb5;--accent: #c17f59;--accent-hover: #d4936e;--border: #3d352c;--border-alt: #4a4238;--radius: 12px;--font-display: "Instrument Serif", Georgia, serif;--font-body: "DM Sans", sans-serif;--accent-rgb: 193, 127, 89}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);line-height:1.65;letter-spacing:.01em;-webkit-font-smoothing:antialiased}.layout{min-height:100vh;display:flex;flex-direction:column;position:relative}.bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--bg);background-image:linear-gradient(rgba(61,53,44,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(61,53,44,.06) 1px,transparent 1px);background-size:40px 40px;overflow:hidden}.bg-layer:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(ellipse 80% 60% at 20% 30%,rgba(193,127,89,.18) 0%,transparent 55%),radial-gradient(ellipse 70% 50% at 80% 70%,rgba(184,134,11,.12) 0%,transparent 50%),radial-gradient(ellipse 60% 80% at 50% 50%,rgba(61,53,44,.4) 0%,transparent 60%);animation:bgDrift 30s ease-in-out infinite}.bg-layer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 0%,rgba(26,22,18,.3) 100%);animation:bgDriftAlt 25s ease-in-out infinite}@keyframes bgDrift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(2%,1%) scale(1.02)}66%{transform:translate(-1%,2%) scale(.98)}}@keyframes bgDriftAlt{0%,to{opacity:.6}50%{opacity:1}}.scroll-art{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.scroll-art__layer{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;border-radius:50%;will-change:transform}.scroll-art__layer--1{background:radial-gradient(ellipse 70% 60% at 50% 30%,rgba(193,127,89,.2) 0%,transparent 55%);transform:rotate(calc(var(--scroll-p, 0) * 180deg)) translate(calc(var(--scroll-p, 0) * 12%),calc(var(--scroll-p, 0) * -6%))}.scroll-art__layer--2{background:radial-gradient(ellipse 60% 80% at 80% 60%,rgba(184,134,11,.18) 0%,transparent 50%);transform:rotate(calc(var(--scroll-p, 0) * -120deg)) translate(calc(var(--scroll-p-2, 0) * -10%),calc(var(--scroll-p-2, 0) * 8%))}.scroll-art__layer--3{background:radial-gradient(ellipse 80% 50% at 20% 80%,rgba(139,119,101,.15) 0%,transparent 55%);transform:rotate(calc(var(--scroll-p-2, 0) * 200deg)) translate(calc(var(--scroll-p, 0) * 8%),calc(var(--scroll-p, 0) * 10%))}.scroll-art__layer--4{background:radial-gradient(ellipse 65% 70% at 60% 20%,rgba(61,53,44,.25) 0%,transparent 60%);transform:rotate(calc(var(--scroll-p, 0) * 90deg)) translate(calc(var(--scroll-p-3, 0) * -15%),calc(var(--scroll-p-3, 0) * -5%))}.scroll-art__layer--5{background:radial-gradient(ellipse 55% 75% at 30% 50%,rgba(193,127,89,.12) 0%,transparent 50%);transform:rotate(calc(var(--scroll-p-2, 0) * -160deg)) translate(calc(var(--scroll-p-2, 0) * 6%),calc(var(--scroll-p-2, 0) * -12%))}.scroll-art__layer--6{background:radial-gradient(ellipse 75% 55% at 70% 85%,rgba(184,134,11,.1) 0%,transparent 55%);transform:rotate(calc(var(--scroll-p-3, 0) * 140deg)) translate(calc(var(--scroll-p-3, 0) * -8%),calc(var(--scroll-p-3, 0) * 6%))}.nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#2c2620f0;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-logo{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--text);text-decoration:none;letter-spacing:.02em;transition:color .2s,transform .2s}.nav-logo:hover{color:var(--accent);transform:scale(1.02)}.nav-links{display:flex;gap:.5rem;list-style:none;margin:0;padding:0}.nav-link{padding:.5rem 1rem;color:var(--text-muted);text-decoration:none;border-radius:var(--radius);font-weight:500;transition:color .2s,background .2s,transform .15s}.nav-link:hover{color:var(--text);background:var(--border);transform:translateY(-1px)}.nav-link.active{color:var(--accent);background:rgba(var(--accent-rgb),.15)}.main{flex:1;padding:2rem 1.5rem;max-width:900px;margin:0 auto;width:100%}.page{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.page-header{margin-bottom:2rem}.page-header h1{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,2.75rem);margin:0 0 .5rem;letter-spacing:-.02em}.page-subtitle{margin:0;color:var(--text-muted);font-size:1.1rem}.home-page{position:relative}.home-scroll-content{position:relative;z-index:1}.home-section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:3rem 1.5rem}.home-section--middle{min-height:80vh}.home-section--hero h1{font-family:var(--font-display);font-weight:700;font-size:clamp(2.25rem,6vw,3.25rem);margin:0 0 .75rem;letter-spacing:-.03em}.hero-tagline{margin:0;font-size:1.25rem;color:var(--text-muted)}.home-section--about h2,.home-section--cta h2{font-family:var(--font-display);font-weight:600;font-size:1.25rem;margin:0 0 .75rem;color:var(--text)}.home-section--about p{margin:0;color:var(--text-muted);max-width:560px}.home-vibes{margin:0;font-family:var(--font-display);font-size:1.5rem;color:var(--text-muted);font-style:italic}.cta-links{display:flex;flex-wrap:wrap;gap:1rem}.btn{display:inline-block;padding:.75rem 1.5rem;border-radius:var(--radius);font-weight:600;font-size:.95rem;text-decoration:none;transition:background .2s,color .2s,transform .15s,box-shadow .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 6px 20px rgba(var(--accent-rgb),.4)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border);border-color:var(--text-muted)}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.card-wrapper{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;transition:border-color .2s,transform .2s,box-shadow .2s}.card-wrapper:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 12px 24px rgba(var(--accent-rgb),.2)}.card{display:block;text-decoration:none;color:inherit}.card:hover{text-decoration:none;color:inherit}.card-image{margin:-1.25rem -1.25rem 1rem;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;aspect-ratio:16/10;background:var(--border)}.card-image img{width:100%;height:100%;object-fit:cover}.card-body{padding:0}.card-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;margin:0 0 .5rem}.card-description{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted);line-height:1.5}.card-tags{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.card-tag{font-size:.75rem;padding:.25rem .6rem;background:var(--border);border-radius:6px;color:var(--text-muted)}.share-app-menu{position:absolute;top:.75rem;right:.75rem;z-index:2}.card-share-trigger{padding:.35rem .6rem;font-size:.8rem;font-weight:500;color:var(--text-muted);background:var(--border);border:none;border-radius:6px;cursor:pointer;font-family:var(--font-body);transition:color .2s,background .2s}.card-share-trigger:hover{color:#fff;background:var(--accent)}.share-app-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;min-width:120px;box-shadow:0 8px 24px #0000004d;z-index:20}.share-app-dropdown .share-option{display:block;width:100%;padding:.5rem .75rem;text-align:left;border:none;background:none;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;transition:background .15s}.share-app-dropdown .share-option:hover{background:var(--border)}.tools-page .placeholder-message{color:var(--text-muted);margin:0}.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text-muted);position:relative}.auth-loading:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 70% 50% at 50% 40%,rgba(var(--accent-rgb),.12) 0%,transparent 50%)}.auth-loading.auth-denied{flex-direction:column;gap:1rem}.auth-denied p{margin:0}.firebase-config-title{font-family:var(--font-display);font-weight:600;margin:0 0 .5rem}.firebase-config-message{margin:0 0 1rem;color:#e08080;max-width:420px}.firebase-config-hint{margin:0;font-size:.9rem;color:var(--text-muted);max-width:480px;line-height:1.5}.firebase-config-hint code{background:var(--border);padding:.15rem .4rem;border-radius:4px;font-size:.85em}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1.5rem;position:relative}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 80% 60% at 30% 50%,rgba(var(--accent-rgb),.1) 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 70% 30%,rgba(184,134,11,.08) 0%,transparent 50%)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2.5rem;max-width:360px;width:100%;text-align:center}.login-title{font-family:var(--font-display);font-weight:700;font-size:1.75rem;margin:0 0 .5rem}.login-subtitle{margin:0 0 1.5rem;color:var(--text-muted);font-size:.95rem}.btn-google{background:var(--text);color:var(--bg);border:1px solid var(--border-alt);cursor:pointer;font-family:var(--font-body)}.btn-google:hover{background:var(--text-muted);border-color:var(--border-alt)}.btn-sm{padding:.4rem .9rem;font-size:.85rem}.btn-danger{background:#dc505026;color:#e08080;border:1px solid rgba(220,80,80,.4)}.btn-danger:hover{background:#dc505040;border-color:#e08080}.share-menu{position:relative}.share-trigger{border:none;background:none;cursor:pointer;font:inherit}.share-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;min-width:140px;box-shadow:0 8px 24px #0000004d;z-index:20}.share-option{display:block;width:100%;padding:.5rem .75rem;text-align:left;border:none;background:none;color:var(--text);font:inherit;cursor:pointer;border-radius:6px;transition:background .15s}.share-option:hover{background:var(--border)}.admin-form{margin-bottom:2.5rem;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:480px}.admin-form-title,.admin-list-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem;margin:0 0 1rem}.admin-form label{display:block;margin-bottom:1rem;font-size:.9rem;color:var(--text-muted)}.admin-form label input{display:block;width:100%;margin-top:.35rem;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit}.admin-form label input:focus{outline:none;border-color:var(--accent)}.admin-form .required{color:var(--accent)}.admin-form .hint{font-weight:400;opacity:.8}.admin-form .btn{margin-top:.5rem}.admin-list-title{margin-bottom:1rem}.admin-items{list-style:none;margin:0;padding:0}.admin-item{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.admin-item-info{display:flex;flex-direction:column;gap:.25rem}.admin-item-url{font-size:.85rem;color:var(--text-muted);word-break:break-all}.admin-item-url:hover{color:var(--accent)}.admin-item-actions{display:flex;gap:.5rem}.admin-edit-form{width:100%;display:grid;gap:.5rem}.admin-edit-form input{padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit}.admin-edit-actions{display:flex;gap:.5rem;margin-top:.5rem}.admin-error{color:#e08080;margin:0}.admin-empty{color:var(--text-muted);margin:0}.admin-loading-slow{margin-top:1rem;font-size:.9rem;color:var(--text-muted);max-width:520px;line-height:1.5}.admin-loading-slow code{background:var(--border);padding:.15rem .4rem;border-radius:4px;font-size:.85em}.admin-error-code{margin:.5rem 0 0;font-size:.9rem;color:var(--text-muted)}.portfolio-loading,.portfolio-error,.portfolio-empty{margin:0 0 1rem;color:var(--text-muted)}.portfolio-error{color:#e08080}
