:root{
  --c-deep-teal: #2f4f4f;
  --c-plum: #4b3b5a;
  --c-deep-blue: #003a74;
  --c-sky: #247ba0;
  --c-amber: #ff6b35;
  --c-ghost: #f4f4f4;
  --c-dark-1: #2a2a2a;
  --c-black: #000000;

  --bg: var(--c-ghost);
  --card: var(--c-dark-1);
  --text: var(--c-dark-1);
  --muted: #bdbdbd;
  --accent: var(--c-amber);
  --glass: rgba(0,0,0,0.06);
  --shadow: 0 10px 30px rgba(0,0,0,0.45);
  --radius: 0px;
}
:root.dark{
  --bg: var(--c-black);
  --card: #151515;
  --text: #f4f4f4;
  --muted: #9b9b9b;
  --accent: var(--c-amber);
  --glass: rgba(255,255,255,0.03);
  --shadow: 0 14px 40px rgba(0,0,0,0.7);
  --c-dark-1:#f4f4f4
}
*{box-sizing:border-box}
html {
  min-height: 100%;
  overflow-x: hidden;
}

body{
  min-height: 100%;
  overflow-x: clip;
  margin:0;
  font-family: 'Open Sans', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.6;
}
.container{max-width:1080px;margin:0 auto;}
section{padding:60px 0}
section + section{border-top:1px solid rgba(0,0,0,0.08);margin-top:40px;padding-top:64px}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1080px;margin:0 auto}
.logo{display:flex;align-items:center;gap:0;margin:0;font-size:1rem;font-weight:700;font-family:'Montserrat',system-ui,sans-serif;text-decoration:none;flex-shrink:0;transform:translateX(-200px)}
.nav-logo{height:120px;width:auto;display:block}
.nav-group{display:flex;align-items:center;margin-left:auto;gap:12px}
.nav{display:flex;gap:12px;align-items:center;flex-shrink:0}
.nav a{color:var(--text);text-decoration:none;font-size:0.95rem;font-weight:700;letter-spacing:0.02em;text-transform:none;opacity:0.95;transition:opacity .16s ease;white-space:nowrap;font-family:inherit;margin:0 18px}
.nav a:hover,.nav a:focus{opacity:1;transform:none}
.theme-toggle{border:0;background:transparent;color:var(--text);font-size:1.2rem;cursor:pointer;padding:8px 12px;line-height:1;flex-shrink:0;margin-left:6px}
html{scroll-behavior:smooth}
.site-header{backdrop-filter: blur(6px);background:var(--glass);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(0,0,0,0.12);padding:12px 12px}
.hero-home{position:relative;min-height:100vh;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;background-image:url('../images/backgrounds/Freebie-DarkGrungeTextures-Preview-06.webp');background-size:cover;background-position:center;background-repeat:no-repeat;color:var(--c-ghost);display:flex;align-items:flex-end;padding-bottom:48px;overflow:hidden}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(42,42,42,0.64) 0%, rgba(42,42,42,0.92) 62%, rgba(42,42,42,0.98) 100%);pointer-events:none}
.hero-inner{position:relative;display:grid;grid-template-columns:1.3fr .9fr;gap:36px;align-items:end;width:100%}
.hero-copy{max-width:620px; margin-left: 325px; margin-bottom: 300px}
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:0.24em;color:var(--c-amber);font-size:0.88rem;margin-bottom:18px}
.hero-subtitle{margin-top:22px;color:var(--c-ghost);font-size:1.15rem;max-width:40ch;line-height:1.8}
.hero-logo-wrap{display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,0.28);border:1px solid rgba(255,255,255,0.12);box-shadow:0 24px 80px rgba(0,0,0,0.35); margin-right: 325px; margin-bottom: 250px}
.hero-logo{max-width:320px;width:100%;}
.hero-logo.visible{opacity:1;transform:translateY(0) scale(1)}

/* Headings */
h1,h2,h3,h4{font-family:'Montserrat',system-ui,sans-serif;color:var(--c-deep-blue);margin:0}
h1{font-size:2.25rem;letter-spacing:-0.02em}
h2{font-size:1.5rem}
.nav{display:flex;gap:12px;align-items:center}
.theme-toggle{border:0;background:transparent;font-size:18px;cursor:pointer;padding:8px;border-radius:8px}
.hero{padding:72px 0 42px}
.hero-title{margin:0;font-size:3.2rem;line-height:1.05}
.lead{margin-top:16px;color:var(--c-dark-1);max-width:58ch;font-size:1.05rem}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.muted{color:var(--muted);font-size:1rem;margin:0}
.projects{margin-top:32px}
.project-page {
  max-width: 1100px;
  margin: 0 auto;
  padding: 5rem 2rem 7rem;
}

.project-hero {
  margin-bottom: 3rem;
  max-width: 760px;
}

.project-hero h1 {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  line-height: 1;
  letter-spacing: -0.04em;
}

.project-hero .lead {
  margin-top: 1.5rem;
  max-width: 58ch;
  font-size: 1.05rem;
  line-height: 1.7;
}

/* Main project layout */
.project-grid {
  display: grid;
  grid-template-columns: 300px minmax(0, 760px);
  gap: 4rem;
  align-items: start;
}

/* Left info card */
.project-meta {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 2rem;

  position: sticky;
  top: 9rem;
}

.project-meta h4 {
  margin: 0 0 1rem;
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-sky);
}

.project-meta p,
.project-meta li {
  color: var(--c-dark-1);
  font-size: 0.95rem;
  line-height: 1.7;
}

.project-meta ul {
  margin: 0;
  padding-left: 1.25rem;
}

/* Right content column */
.project-content {
  max-width: 850px;
}

.project-content h3 {
  margin: 0 0 1rem;
  font-size: 1.6rem;
  color: var(--c-deep-blue);
}

.project-content h3:not(:first-child) {
  margin-top: 2.25rem;
}

.project-content p {
  margin: 0;
  color: var(--c-dark-1);
  font-size: 1rem;
  line-height: 1.85;
  max-width: 65ch;
}

/* Images */
.project-images {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 1.5rem;
}

.project-images img {
  width: 100%;
  max-height: 520px;
  object-fit: contain;
  display: block;
  background: rgba(255, 255, 255, 0.03);
  border: 2px solid rgba(255, 255, 255, 0.08);
}

/* Button */
.project-link-row {
  margin-top: 2rem;
  margin-bottom: 3rem;
}

.btn {
  display: inline-block;
  background: var(--accent);
  color: var(--c-ghost);
  padding: 0.85rem 1.1rem;
  border-radius: 2px;
  border: 0;
  cursor: pointer;
  font-weight: 700;
  text-decoration: none;
  width: 100%;
  text-align: center;
}

/* Responsive */
@media (max-width: 900px) {
  .project-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .project-meta {
    position: static;
  }

  .project-content {
    max-width: none;
  }
}

  .project-images.single-image {
    display: flex;
    justify-content: center;
  }

  .project-images.single-image img {
    width: min(100%, 520px);
    max-height: 720px;
    object-fit: contain;
  }

.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:28px;margin-top:28px;align-items:start}
.card{background:var(--card);border-radius:0;box-shadow:var(--shadow);padding:28px;display:flex;flex-direction:column;gap:18px;cursor:grab;transition:transform .24s cubic-bezier(.2,.9,.2,1),box-shadow .24s;min-height:340px;border-left:8px solid var(--c-deep-blue);position:relative;overflow:hidden}
.card:active{cursor:grabbing}
.card:hover{transform:translateY(-10px) skewY(-1deg)}
.card.dragging{opacity:0.85;transform:scale(.99) rotate(-0.7deg)}
.card .title{font-weight:700;font-size:1.15rem;margin:0;font-family: 'Montserrat', system-ui, sans-serif;color:var(--c-ghost)}
.card .desc{color:var(--muted);font-size:0.98rem;margin:0;font-family: 'Open Sans', system-ui, sans-serif}
.card-window{height:260px;overflow:hidden;display:block;margin:-28px -28px 16px;border-top:1px solid rgba(255,255,255,0.08);border-bottom:1px solid rgba(255,255,255,0.08);background:linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));position:relative}
.window-toolbar{display:flex;align-items:center;gap:10px;padding:14px 18px 8px;color:var(--muted);font-size:0.88rem;text-transform:lowercase;letter-spacing:0.02em}
.dot{width:12px;height:12px;border-radius:50%;display:inline-block}
.dot.red{background:#ff6b35}
.dot.yellow{background:#ffd166}
.dot.green{background:#6bcB77}
.window-url{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.window-screen{background:#121212;min-height:160px;padding:18px;display:flex;align-items:center;justify-content:center;position:relative}
.window-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--c-ghost);text-align:center;opacity:0.88}
.window-label{font-size:0.8rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--c-sky)}
.window-link{font-size:1rem;font-weight:700;letter-spacing:-0.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.card-link{display:block;color:inherit;text-decoration:none}
.card-body{display:flex;flex-direction:column;gap:16px}
.meta{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto}
.category{font-size:0.86rem;font-weight:700;color:var(--c-sky);letter-spacing:0.06em;text-transform:uppercase}
.footer a {text-decoration:none;font-weight:700; color:var(--c-plum)}
.footer a:hover {transition:color .16s ease; color:var(--c-amber)}

.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.tag{background:transparent;border:1px solid rgba(255,255,255,0.06);padding:6px 8px;border-radius:2px;font-size:0.8rem;color:var(--muted)}
.card .actions{display:flex;gap:8px}

/* About images */
.about-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 430px;
  gap: 4rem;
  align-items: center;
}

.about-copy {
  max-width: 680px;
}

.about-visual {
  width: 430px;
  display: grid;
  gap: 0.75rem;
}

.about-photo {
  width: 100%;
  height: 320px;
  display: block;
  object-fit: contain;
  object-position: center;
  border: 2px solid var(--c-deep-teal);
}

.about-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}

.about-thumbs img {
  width: 100%;
  height: 95px;
  display: block;
  object-fit: cover;
  object-position: center;
  border: 1px solid var(--c-plum);
}

.about-thumbs img:hover {
  transform: scale(1.05);
}

#backToTop {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 3.5rem;
  height: 3.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  z-index: 99999;
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
  background: var(--accent);
  color: var(--c-ghost);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}

#backToTop.show {
  opacity: 1 !important;
  visibility: visible !important;
}

#backToTop:hover {
  transform: translateY(-4px);
}

#backToTop svg {
  width: 35px;
  height: 35px;
}

@media (max-width: 900px) {
  .about-inner {
    grid-template-columns: 1fr;
  }

  .about-visual {
    width: min(100%, 430px);
  }
}

/* Asymmetric grid spans */
.grid .card{grid-column: span 4}
/* .grid .card:nth-child(3n+1){grid-column: span 6;transform:rotate(-1deg)}
.grid .card:nth-child(3n+2){grid-column: span 5;transform:translateY(12px) rotate(.6deg)}
.grid .card:nth-child(3n+3){grid-column: span 3;transform:translateY(-6px) rotate(-0.4deg)} */

/* Grunge overlay */
.card::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;background-image:repeating-linear-gradient(135deg, rgba(0,0,0,0.02) 0 2px, transparent 2px 6px);} 
.site-footer{padding:28px 0;color:var(--muted);text-align:center}

/* Accessibility & focus */
.card:focus-within{outline:3px solid rgba(124,58,237,0.12)}
.theme-toggle:focus{outline:2px solid rgba(124,58,237,0.14);outline-offset:2px}

@media (max-width:520px){.container{padding:16px}.hero{padding:28px 0}.hero-title{font-size:22px}}

@media (max-width:900px){
  .grid{grid-template-columns:repeat(6,1fr)}
  .grid .card{grid-column: span 6;transform:none}
  .project-grid{grid-template-columns:1fr}
  .project-meta{min-height:auto}
}

@media (max-width:640px){
  .container{padding:24px 16px 32px}
  .hero{padding:48px 0 24px}
  .hero-title{font-size:2.4rem}
  .grid{grid-template-columns:1fr}
  .grid .card{grid-column:1/-1;transform:none}
  .card{min-height:260px;padding:22px}
  .project-grid{grid-template-columns:1fr}
  .project-images{grid-template-columns:1fr}
  .project-meta{padding:20px}
  .project-content{padding:0}
}


/* subtle entrance */
@keyframes enter {from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.grid .card{animation:enter .36s ease both}
