/* styles.css */
:root{
  --bg-0:#06070a; --bg-1:#0a0b10; --bg-2:#11131a;
  --ink:#e6e7eb; --muted:#9ba0ad;
  --danger:#ff1e39; --danger-2:#ff3355; --danger-3:#ff667a;
  --shadow:0 10px 30px rgba(0,0,0,.5);
  --font-mono:"JetBrains Mono","Fira Code","IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
}
/* square everything */
*{box-sizing:border-box;border-radius:0 !important}
html,body{height:100%}
body,button,input,textarea{
  margin:0;color:var(--ink);
  font:16px/1.6 var(--font-mono);
  font-feature-settings:"zero" 1;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  background:
    radial-gradient(1200px 700px at 70% -10%, rgba(255,30,57,.25), transparent 50%),
    radial-gradient(900px 500px at 20% 10%, rgba(255,30,57,.15), transparent 45%),
    linear-gradient(180deg,var(--bg-0),var(--bg-1) 35%,var(--bg-2));
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* Fixed header + auto-hide */
header{position:fixed;top:0;left:0;right:0;z-index:60;transform:translateY(0);transition:transform .25s ease,background-color .2s ease}
header.hide{transform:translateY(-100%)}
main{padding-top:var(--header-h,64px)}

/* Header bar visuals */
header{backdrop-filter:saturate(120%) blur(8px);background:linear-gradient(180deg, rgba(10,11,16,.85), rgba(10,11,16,.6));border-bottom:1px solid rgba(255,30,57,.25)}
.nav{max-width:1200px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.brand .ring{width:22px;height:22px;background: radial-gradient(circle at 50% 50%, rgba(255,30,57,1), rgba(255,30,57,.35) 45%, rgba(0,0,0,0) 46%),radial-gradient(circle at 50% 50%, rgba(255,30,57,.45), transparent 60%);box-shadow:0 0 18px rgba(255,30,57,.75), inset 0 0 10px rgba(255,30,57,.6)}
.menu{display:flex;gap:26px;align-items:center}
.menu a{color:var(--ink);opacity:.85;font-weight:800;letter-spacing:.12em;text-transform:uppercase;position:relative}
.menu a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:linear-gradient(90deg,transparent,var(--danger),transparent);opacity:0;transform:scaleX(.4);transition:transform .2s,opacity .2s}
.menu a:hover{opacity:1}
.menu a:hover:after{opacity:1;transform:scaleX(1)}

/* Mobile nav toggle */
.nav-toggle{display:none;border:0;background:transparent;width:42px;height:42px;cursor:pointer}
.nav-toggle .bar{display:block;width:22px;height:2px;background:#fff;margin:5px auto;box-shadow:0 0 8px rgba(255,30,57,.6)}
@media (max-width:900px){
  .nav-toggle{display:block}
  .menu{position:fixed;inset:var(--header-h,64px) 0 auto 0;background:rgba(10,11,16,.96);border-top:1px solid rgba(255,30,57,.25);display:none;flex-direction:column;gap:0;padding:8px 14px}
  .menu.open{display:flex}
  .menu a{padding:14px 6px}
}

/* Neon + buttons */
.neon{color:var(--ink);text-shadow:0 0 12px rgba(255,30,57,.25),0 0 28px rgba(255,30,57,.22),0 0 60px rgba(255,30,57,.18)}
.btn{--padx:24px;--pady:14px;display:inline-flex;align-items:center;gap:.65rem;padding:var(--pady) var(--padx);color:#fff;background:radial-gradient(60% 60% at 50% 10%, rgba(255,51,85,.35), transparent 60%),linear-gradient(90deg, var(--danger), var(--danger-2));box-shadow:0 0 18px rgba(255,30,57,.55),0 10px 26px rgba(255,30,57,.25);border:1px solid rgba(255,255,255,.08);text-transform:uppercase;letter-spacing:.12em;font-weight:800;transition:transform .15s,filter .15s}
.btn:hover{transform:translateY(-2px) scale(1.02);filter:saturate(1.15)}
.tag{font-size:.75rem;letter-spacing:.12em;color:var(--danger-3);text-transform:uppercase}

/* caret */
.caret{display:inline-block;width:.6ch;height:1em;margin-left:.25ch;background:var(--danger);box-shadow:0 0 12px rgba(255,30,57,.6),0 0 28px rgba(255,30,57,.35);animation:blink 1s step-end infinite;vertical-align:-0.08em}
@keyframes blink{50%{opacity:0}}

/* Grid canvas */
#gridCanvas{position:fixed;inset:0;z-index:-1;background:radial-gradient(70% 60% at 50% -10%,rgba(255,30,57,.18),transparent 60%)}

/* HERO (webp) */
.hero{width:100%;max-width:none;margin:0;padding:160px 0 120px;min-height:68vh;display:flex;align-items:center;background:url('assets/hero.webp') center/cover no-repeat;isolation:isolate;position:relative}
.hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg, rgba(10,11,16,.75), rgba(10,11,16,.88)),radial-gradient(120% 70% at 70% 10%, rgba(255,30,57,.28), transparent 60%)}
.hero .inner{position:relative;z-index:1;width:100%;max-width:1200px;margin:0 auto;padding:0 20px}
.hero .lead{font-size:clamp(1rem,6.2vw,5.2rem);font-weight:900;line-height:1.02;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
@media (max-width:600px){
  .hero{padding:120px 0 80px}
  .hero .lead{letter-spacing:.02em}
}
.glitch{position:relative;display:inline-block}
.glitch:before,.glitch:after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;color:#fff;mix-blend-mode:screen;pointer-events:none}
.glitch:before{transform:translate(1px,0);color:var(--danger-3);filter:blur(.6px)}
.glitch:after{transform:translate(-1px,0);color:var(--danger);filter:blur(.6px)}
.cta{display:flex;gap:14px;margin-top:26px;flex-wrap:wrap}

/* Sections */
section{max-width:1200px;margin:0 auto;padding:80px 20px;background:none}
.section-title{display:flex;align-items:center;gap:10px;margin-bottom:18px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.section-title .line{height:2px;width:54px;background:linear-gradient(90deg,var(--danger),transparent)}

/* EXPERIENCE GALLERY (webp) */
#experience{max-width:1600px}
.xp-grid{display:grid;grid-template-columns:1fr;gap:8px}
.xp-tile{position:relative;height:clamp(420px,60vw,820px);overflow:hidden;background:#0b0d13}
.xp-tile img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform .4s ease, filter .4s ease}
.xp-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.32));pointer-events:none;opacity:.9;transition:opacity .25s}
.xp-tile:hover img,.xp-tile.show-cta img{transform:scale(1.05);filter:saturate(120%) contrast(108%)}
.xp-tile:hover::after,.xp-tile.show-cta::after{opacity:1}
.btn.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-52%) scale(.98);opacity:0;pointer-events:none;transition:opacity .2s ease, transform .2s ease;padding:16px 34px;font-size:1rem;letter-spacing:.18em}
.xp-tile:focus-within .btn.play,.xp-tile:hover .btn.play,.xp-tile.show-cta .btn.play{opacity:1;transform:translate(-50%,-52%) scale(1);pointer-events:auto}

/* TECH */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:900px){.features{grid-template-columns:1fr}}
.feature{padding:18px;border:1px solid rgba(255,30,57,.25);background:none}
.feature h4{margin:10px 0 6px}
.feature p{margin:0;color:var(--muted)}
.icon{width:38px;height:38px;display:grid;place-items:center;border:none;background:none;box-shadow:none}
.icon svg{fill:var(--danger)}

/* ABOUT */
.about{display:grid;grid-template-columns:1fr;gap:26px}
.about .panel{padding:18px;border:1px solid rgba(255,30,57,.25);background:none}

/* HIRING */
.jobs{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.job{grid-column:span 12;border:1px solid rgba(255,30,57,.25);background:none;padding:18px}
.job h4{margin:0 0 8px}
.job ul{margin:8px 0 14px;padding-left:18px;color:var(--muted)}
.job .meta{margin-bottom:8px;color:var(--muted);font-size:.95rem}
.job .benefits{margin-bottom:12px;color:var(--muted)}
.job.hidden{display:none}

/* Hiring search: borderless + icon-trigger */
.job-search{position:relative;display:inline-flex;align-items:center;margin-left:auto;height:40px;padding:0 8px;overflow:hidden;width:48px;transition:width .25s ease;background:none;border:none;box-shadow:none}
.job-search .open-btn{display:grid;place-items:center;border:0;background:transparent;cursor:pointer;padding:0 6px}
.job-search input{width:0;border:0;outline:0;background:transparent;color:#fff;transition:width .25s ease;padding:0 8px;box-shadow:none}
.job-search.open{width:420px;max-width:min(90vw,480px)}
.job-search.open input{width:100%}
/* hide native clear X */
.job-search input[type="search"]::-webkit-search-cancel-button,
.job-search input[type="search"]::-webkit-search-decoration{ -webkit-appearance:none; appearance:none; display:none; width:0; height:0 }
.job-search input[type="search"]::-ms-clear,
.job-search input[type="search"]::-ms-reveal{ display:none; width:0; height:0 }

/* CONTACT */
#contact{max-width:760px}
form{display:grid;grid-template-columns:1fr;gap:12px;margin-top:10px}
.field{display:flex;flex-direction:column;gap:6px}
input,textarea{background:#0a0d14;border:1px solid rgba(255,30,57,.3);color:#fff;padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s}
textarea{min-height:120px;resize:vertical}
input:focus,textarea:focus{border-color:var(--danger);box-shadow:0 0 0 3px rgba(255,30,57,.15)}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(30px);background:#0e131b;border:1px solid rgba(25,255,165,.4);color:#fff;padding:10px 14px;box-shadow:0 10px 30px rgba(0,0,0,.5);opacity:0;transition:opacity .2s,transform .2s;z-index:9999}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* Footer */
footer{border-top:1px solid rgba(255,30,57,.25);background:linear-gradient(180deg,rgba(10,11,16,.85),rgba(10,11,16,.9));padding:22px 20px;color:#9ba0ad}
.foot{max-width:1200px;margin:0 auto;display:flex;gap:14px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.social{display:flex;gap:12px}
.social a{background:none;border:none;box-shadow:none}
.social img{width:24px;height:24px;object-fit:contain;filter:saturate(120%)}

/* Fade-in (smooth, mobile-safe) */
.reveal{opacity:0;transform:translateY(22px);filter:blur(8px);visibility:hidden;will-change:opacity,transform,filter}
.reveal.is-ready{visibility:visible}
.reveal.on{animation:reveal-in var(--reveal-dur,720ms) var(--reveal-ease,cubic-bezier(.2,.7,.2,1)) var(--reveal-delay,0ms) both}
@keyframes reveal-in{0%{opacity:0;transform:translateY(22px);filter:blur(8px)}100%{opacity:1;transform:none;filter:blur(0)}}
@media (prefers-reduced-motion:reduce){
  .reveal,.reveal.on{animation:none !important;opacity:1 !important;transform:none !important;filter:none !important}
}
