@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&family=Sacramento&display=swap');

:root{
  --bg:#0A0714; --bg-2:#140F24; --bg-3:#1C1433;
  --ink:#F3EFFA; --ink-dim:#B6ADD1;
  --violet:#A855F7; --violet-2:#6D28D9; --line:#2A2145;
  --serif-display:'Archivo Black', sans-serif;
  --mono:'Space Grotesk', monospace;
  --body:'Inter', sans-serif;
  --script:'Sacramento', cursive;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);}

.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);color:var(--violet);font-family:var(--mono);letter-spacing:0.3em;font-size:13px;}

.site{background:var(--bg);color:var(--ink);overflow-x:hidden;padding-bottom:64px;position:relative;}

.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.8s cubic-bezier(.16,.8,.24,1), transform 0.8s cubic-bezier(.16,.8,.24,1);}
.reveal-in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1;transform:none;transition:none;} }

.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;letter-spacing:0.25em;color:var(--violet);margin-bottom:18px;text-transform:uppercase;}
.eyebrow-line{width:28px;height:1px;background:var(--violet);}

/* ---------------- Hero (single swappable image) ---------------- */
.hero{position:relative;min-height:100vh;background:#0A0714;border-bottom:1px solid var(--line);overflow:hidden;}
.hero-img{width:100%;height:100vh;object-fit:cover;display:block;}
.hero-img-placeholder{
  width:100%;height:100vh;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(135deg, var(--bg-2), var(--bg-2) 12px, var(--bg-3) 12px, var(--bg-3) 24px);
  color:var(--ink-dim);font-family:var(--mono);font-size:13px;letter-spacing:0.15em;text-align:center;padding:0 20px;
}
.hero-scroll-cue{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--mono);font-size:10px;letter-spacing:0.3em;color:var(--ink-dim);}
.hero-scroll-bar{width:1px;height:26px;background:linear-gradient(var(--violet), transparent);animation:scrollpulse 1.8s ease-in-out infinite;}
@keyframes scrollpulse{0%,100%{opacity:0.3;}50%{opacity:1;}}

/* ---------------- Index ---------------- */
.index-section{padding:120px 6vw;border-bottom:1px solid var(--line);}
.index-heading{font-family:var(--serif-display);font-size:clamp(32px,6vw,56px);margin:0 0 48px;color:var(--ink);}
.index-list{display:flex;flex-direction:column;}
.index-row{display:flex;align-items:center;gap:24px;padding:22px 4px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background 0.3s ease, padding-left 0.3s ease;}
.index-row:last-child{border-bottom:1px solid var(--line);}
.index-row:hover{background:rgba(168,85,247,0.06);padding-left:16px;}
.index-num{font-family:var(--mono);color:var(--violet);font-size:14px;width:36px;flex-shrink:0;}
.index-label{font-family:var(--serif-display);font-size:clamp(20px,3.4vw,34px);flex:1;letter-spacing:0.01em;}
.index-arrow{color:var(--ink-dim);opacity:0;transition:opacity 0.3s ease, transform 0.3s ease;transform:translateX(-8px);}
.index-row:hover .index-arrow{opacity:1;transform:translateX(0);color:var(--violet);}

/* ---------------- About ---------------- */
.about-section{padding:120px 6vw;border-bottom:1px solid var(--line);}
.about-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:64px;align-items:center;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;gap:40px;}}
.about-photo-frame{aspect-ratio:4/5;border:1px solid var(--line);position:relative;overflow:hidden;background:var(--bg-2);}
.about-photo-el{width:100%;height:100%;object-fit:cover;}
.about-photo-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink-dim);font-family:var(--mono);font-size:12px;letter-spacing:0.3em;background:repeating-linear-gradient(135deg, var(--bg-2), var(--bg-2) 10px, var(--bg-3) 10px, var(--bg-3) 20px);}
.about-heading-row{position:relative;display:inline-block;margin-bottom:24px;}
.about-heading-ribbon{position:absolute;left:-14px;top:6px;bottom:6px;width:6px;background:linear-gradient(var(--violet), var(--violet-2));transform:skewX(-12deg);}
.about-heading{font-family:var(--serif-display);font-size:clamp(34px,5vw,58px);margin:0;padding-left:18px;}
.about-body{font-size:16px;line-height:1.8;color:var(--ink-dim);max-width:56ch;margin:0 0 28px;white-space:pre-line;}
.about-tag{font-family:var(--mono);font-size:11px;letter-spacing:0.25em;color:var(--violet);text-transform:uppercase;}

/* ---------------- Divider (creative, works for any label) ---------------- */
.divider-section{min-height:60vh;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);background:linear-gradient(180deg, var(--bg-2), var(--bg));position:relative;overflow:hidden;}
.divider-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle, rgba(168,85,247,0.20), transparent 65%);pointer-events:none;}
.divider-ghost{position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);font-family:var(--serif-display);font-size:clamp(90px,22vw,320px);color:transparent;-webkit-text-stroke:1px rgba(168,85,247,0.10);white-space:nowrap;pointer-events:none;z-index:0;}
.divider-inner{text-align:center;position:relative;z-index:1;}
.divider-tick{display:block;font-family:var(--mono);font-size:13px;letter-spacing:0.5em;color:var(--violet);margin-bottom:18px;}
.divider-label{font-family:var(--serif-display);font-size:clamp(48px,11vw,150px);margin:0;line-height:0.9;background:linear-gradient(180deg, var(--ink), var(--ink-dim));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.divider-rule{display:block;width:80px;height:2px;background:var(--violet);margin:28px auto 0;}

/* ---------------- Projects ---------------- */
.projects-section{padding:100px 6vw;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:0;}
.project-block{padding:60px 0;}
.project-block:first-child{padding-top:0;}
.project-block:last-child{padding-bottom:0;}
.project-divider{width:100%;height:1px;background:rgba(255,255,255,0.22);flex-shrink:0;}
.project-head{display:flex;gap:24px;align-items:baseline;margin-bottom:32px;}
.project-index{font-family:var(--mono);color:var(--violet);font-size:14px;}
.project-title{font-family:var(--serif-display);font-size:clamp(24px,3.4vw,40px);margin:0 0 8px;}
.project-desc{color:var(--ink-dim);font-size:15px;margin:0;max-width:60ch;}
.project-media-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px,1fr));gap:20px;}
.project-media-item{display:flex;flex-direction:column;gap:8px;}
.project-media-el{width:100%;object-fit:cover;border:1px solid var(--line);display:block;}
.project-media-el.media-landscape{aspect-ratio:16/10;}
.project-media-el.media-portrait{aspect-ratio:4/5;}
video.project-media-el{cursor:pointer;}
.project-media-placeholder{border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink-dim);font-family:var(--mono);font-size:11px;letter-spacing:0.2em;background:var(--bg-2);}
.project-media-placeholder.media-landscape{aspect-ratio:16/10;}
.project-media-placeholder.media-portrait{aspect-ratio:4/5;}
.project-caption{font-family:var(--mono);font-size:11px;color:var(--ink-dim);letter-spacing:0.05em;}

/* ---------------- Contact ---------------- */
.contact-section{padding:140px 6vw 60px;text-align:center;}
.contact-heading{font-family:var(--serif-display);font-size:clamp(32px,7vw,80px);margin:0 0 40px;}
.contact-links{display:flex;flex-direction:column;gap:16px;align-items:center;}
.contact-link{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-family:var(--mono);font-size:15px;letter-spacing:0.05em;border-bottom:1px solid var(--line);padding-bottom:6px;transition:color 0.25s ease, border-color 0.25s ease;}
.contact-link svg{color:var(--violet);flex-shrink:0;}
.contact-link:hover{color:var(--violet);border-color:var(--violet);}

/* ---------------- Thank you (closing) ---------------- */
.thankyou-section{min-height:60vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center;padding:60px 6vw;background:radial-gradient(ellipse 80% 60% at 50% 30%, rgba(168,85,247,0.30), transparent 60%), var(--bg);}
.thankyou-glow{position:absolute;inset:0;background:linear-gradient(180deg, transparent, rgba(109,40,217,0.18));pointer-events:none;}
.thankyou-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;}
.thankyou-signature{font-family:var(--script);font-size:clamp(28px,4.5vw,46px);color:var(--violet);margin-bottom:-10px;}
.thankyou-heading{font-family:var(--serif-display);font-size:clamp(48px,10vw,110px);margin:0;color:var(--ink);}

.rail{position:fixed;left:0;right:0;bottom:0;height:3px;background:var(--line);z-index:50;}
.rail-fill{height:100%;background:linear-gradient(90deg, var(--violet-2), var(--violet));transition:width 0.1s linear;}
