/* ============ FADETOBLAKE — VHS theme ============ */
@font-face{font-family:"Fadetoblake Hand";src:url("/assets/fadetoblake-hand.woff2") format("woff2");font-display:swap}
:root{
  --bg:#08080a; --bg2:#111114; --bg3:#18181c; --line:#25252b;
  --ink:#ece8df; --muted:#8f8c86; --dim:#55534f;
  --teal:#13a3a1; --pink:#ee87c8;
  --v1:#3b2a8f; --v2:#c4368f; --v3:#e7272e; --v4:#f38b1c;   /* VHS sleeve stripes */
  --label:#efeae0;
  --head:"Archivo",system-ui,sans-serif;
  --mono:"Space Mono",ui-monospace,monospace;
  --osd:"VT323",ui-monospace,monospace;
  --hand:"Fadetoblake Hand","Permanent Marker",cursive;
  --body:"Inter",system-ui,sans-serif;
  --max:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{background:var(--bg);color:var(--ink);font:16px/1.65 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{display:block;max-width:100%}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
::selection{background:var(--pink);color:#000}

/* ---- film grain + scanlines over everything ---- */
body::before,body::after{content:"";position:fixed;inset:-50%;pointer-events:none;z-index:100}
body::before{ /* grain */
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.075;animation:grain 1s steps(6) infinite}
body::after{ /* scanlines */
  inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);opacity:.35}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* ---- type helpers ---- */
.osd{font-family:var(--osd);font-size:26px;line-height:1;letter-spacing:.04em;color:#f4f1e8;text-shadow:0 0 6px rgba(255,255,255,.35),2px 0 0 rgba(255,0,80,.35),-2px 0 0 rgba(0,220,255,.35)}
.mono{font-family:var(--mono)}
.eyebrow{font:700 12px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--teal);margin-bottom:16px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor}
h2{font:900 clamp(34px,5.4vw,68px)/.95 var(--head);font-style:italic;font-stretch:112%;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:18px}
.glitch-text{position:relative}
.lede{color:var(--muted);max-width:620px;margin-bottom:40px;font-size:17px}

/* ---- VHS sleeve stripes ---- */
.stripes{display:flex;height:12px}
.stripes i{flex:1}
.stripes i:nth-child(1){background:var(--v1)}.stripes i:nth-child(2){background:var(--v2)}.stripes i:nth-child(3){background:var(--v3)}.stripes i:nth-child(4){background:var(--v4)}

/* ---- nav ---- */
.nav{position:fixed;inset:0 0 auto;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:16px 28px;transition:background .3s}
.nav.is-solid{background:rgba(8,8,10,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav__brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav__brand img{height:26px;width:auto}
.nav__brand span{font:900 15px/1 var(--head);font-style:italic;font-stretch:115%;letter-spacing:.02em;text-transform:uppercase}
.nav__links{display:flex;align-items:center;gap:26px}
.nav__links a{font:700 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--muted);transition:color .2s}
.nav__links a:hover{color:var(--ink)}
.rec{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line);border-radius:4px;color:var(--ink)!important}
.rec::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--v3);box-shadow:0 0 8px var(--v3);animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

/* ---- hero: the CRT ---- */
.hero{position:relative;height:100vh;min-height:620px;overflow:hidden;background:#000;display:grid;place-items:center;isolation:isolate}
.hero__tape{position:absolute;inset:0;z-index:-2}
.hero__tape img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s;filter:saturate(.8) contrast(1.1) brightness(.75)}
.hero__tape img.is-on{opacity:.55}
.hero::before{ /* CRT vignette + curvature shadow */
  content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.55) 78%,#000 100%)}
.hero::after{ /* heavier scanlines on the screen */
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.35) 0 2px,transparent 2px 4px);mix-blend-mode:multiply}
.tracking{position:absolute;left:0;right:0;height:70px;top:-80px;z-index:3;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.06) 30%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.05) 70%,transparent);
  filter:blur(1px);animation:track 7s linear infinite}
@keyframes track{0%{top:-80px}35%{top:110%}100%{top:110%}}
.hero__in{position:relative;z-index:4;text-align:center;padding:0 24px}
.hero__logo{width:min(760px,86vw);margin:0 auto;animation:rgb 6s infinite}
@keyframes rgb{
  0%,86%,100%{filter:drop-shadow(0 0 0 transparent);transform:none}
  87%{filter:drop-shadow(4px 0 0 rgba(255,0,90,.75)) drop-shadow(-4px 0 0 rgba(0,230,255,.75));transform:translateX(-3px) skewX(-4deg)}
  88%{filter:drop-shadow(-6px 0 0 rgba(255,0,90,.75)) drop-shadow(6px 0 0 rgba(0,230,255,.75));transform:translateX(4px)}
  89%{filter:drop-shadow(2px 0 0 rgba(255,0,90,.6)) drop-shadow(-2px 0 0 rgba(0,230,255,.6));transform:none}
}
.hero__tag{margin-top:26px;font:400 clamp(12px,1.4vw,15px)/1.5 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:#cfcbc2}
.hero__tag b{color:var(--pink);font-weight:400}
.hero__cta{display:flex;gap:14px;justify-content:center;margin-top:38px;flex-wrap:wrap}
.osd-tl,.osd-tr,.osd-bl,.osd-br{position:absolute;z-index:4}
.osd-tl{top:86px;left:34px}
.osd-tr{top:86px;right:34px}
.osd-bl{bottom:42px;left:34px}
.osd-br{bottom:42px;right:34px;text-align:right}
.osd-tl .play::after{content:" \25B6"}
.hero .stripes{position:absolute;left:0;right:0;bottom:0;z-index:5;height:8px}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;border:1px solid rgba(255,255,255,.25);border-radius:4px;font:700 12px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--ink);background:rgba(0,0,0,.35);transition:.2s}
.btn:hover{border-color:var(--ink);background:rgba(255,255,255,.06)}
.btn--solid{background:var(--ink);color:#000;border-color:var(--ink)}
.btn--solid:hover{background:var(--pink);border-color:var(--pink);color:#000}

/* ---- sections ---- */
section{padding:110px 0;position:relative}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.sec-head .lede{margin-bottom:0}

/* ---- VCR filter buttons ---- */
.vcr{display:flex;gap:6px;background:#0f0f12;border:1px solid var(--line);border-radius:6px;padding:5px}
.vcr button{all:unset;cursor:pointer;padding:10px 16px;border-radius:4px;font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);transition:.15s}
.vcr button:hover{color:var(--ink)}
.vcr button[aria-pressed="true"]{background:var(--ink);color:#000}

/* ---- tape tiles ---- */
.library--h{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 24px}
.library--h .tile.is-wide{grid-column:1/-1}
.library--v{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 4*20px)/5);gap:20px;overflow-x:auto;padding-bottom:16px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.library--v .tile{scroll-snap-align:start}
.shelf-head{display:flex;justify-content:space-between;align-items:baseline;margin:70px 0 20px;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.shelf-head .mono{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.shelf-head.is-hidden{display:none}
.tile{all:unset;cursor:pointer;display:block;min-width:0}
.tile.is-hidden{display:none}
.tile__screen{position:relative;display:block;overflow:hidden;border-radius:6px;background:var(--bg3);aspect-ratio:16/9;box-shadow:0 0 0 1px var(--line)}
.tile--v .tile__screen{aspect-ratio:9/16}
.tile__screen img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s,opacity .3s,filter .3s}
.tile__preview{opacity:0}
.tile.is-hover .tile__preview{opacity:1}
.tile:hover .tile__screen img{transform:scale(1.035)}
.tile__screen::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.22) 0 1px,transparent 1px 3px);opacity:0;transition:.2s;pointer-events:none}
.tile:hover .tile__screen::after{opacity:1}
.tile__osd{position:absolute;top:12px;left:14px;opacity:0;transition:.15s;font-size:22px}
.tile:hover .tile__osd{opacity:1}
.tile:hover .tile__screen img{filter:drop-shadow(3px 0 0 rgba(255,0,90,.5)) drop-shadow(-3px 0 0 rgba(0,230,255,.5))}
.tile__label{display:block;position:relative;margin-top:12px;padding:10px 14px 9px;background:var(--label);color:#141414;border-radius:3px;
  background-image:linear-gradient(transparent calc(100% - 1px),rgba(0,0,0,.13) 0);background-size:100% 22px;background-position:0 9px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.06),0 2px 0 rgba(0,0,0,.4);transform:rotate(-.4deg)}
.tile:nth-child(even) .tile__label{transform:rotate(.35deg)}
.tile__title{display:block;font:400 21px/1.15 var(--hand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile--v .tile__title{font-size:18px}
.tile__client{display:block;font:400 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#4a4740;margin-top:2px}
.tile:focus-visible .tile__screen{outline:2px solid var(--pink);outline-offset:3px}

/* ---- player: a CRT set ---- */
.player{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.9);display:none;place-items:center;padding:24px}
.player.is-open{display:grid}
body.is-watching::before,body.is-watching::after{display:none}
.player__set{position:relative;width:min(1080px,100%);padding:18px;border-radius:22px;background:linear-gradient(#1c1c20,#0e0e11);box-shadow:0 30px 80px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06)}
.player__set--v{width:min(440px,100%,calc((100vh - 170px)*9/16 + 36px))}
.player__screen{position:relative;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden}
.player__set--v .player__screen{aspect-ratio:9/16}
.player__screen iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player__static{position:absolute;inset:-20%;z-index:2;pointer-events:none;opacity:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-color:#222}
.player.is-loading .player__static{opacity:1;animation:grain .3s steps(4) infinite}
.player__osd{position:absolute;top:16px;left:20px;z-index:3;opacity:0;pointer-events:none}
.player.is-loading .player__osd{opacity:1}
.player__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px;padding:0 4px}
.player__cap{font:400 20px/1.2 var(--hand);color:var(--label)}
.player__cap small{display:block;font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.player__close{all:unset;cursor:pointer;font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border:1px solid var(--line);border-radius:4px}
.player__close:hover{color:var(--ink);border-color:var(--ink)}

/* ---- about ---- */
.about{display:grid;grid-template-columns:5fr 6fr;gap:70px;align-items:center}
.cardlabel{position:relative;background:var(--label);color:#151515;border-radius:10px;padding:34px 30px 26px;transform:rotate(-1.5deg);box-shadow:0 22px 50px rgba(0,0,0,.5);
  background-image:linear-gradient(transparent calc(100% - 1px),rgba(0,0,0,.14) 0);background-size:100% 46px;background-position:0 24px}
.cardlabel::before{content:"";position:absolute;inset:-14px;border-radius:16px;background:#151517;z-index:-1;box-shadow:inset 0 0 0 1px #26262b}
.cardlabel h3{font:400 clamp(34px,4.4vw,54px)/1.05 var(--hand);margin-bottom:12px}
.cardlabel p{font:400 18px/46px var(--mono);margin:0}
.about__text p{color:#cdc9c0;margin-bottom:18px;font-size:17px}
.clients{margin-top:34px;padding-top:24px;border-top:1px dashed var(--line)}
.clients p{font:400 13px/2 var(--mono)!important;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)!important}
.clients b{color:var(--ink);font-weight:400}

/* ---- contact ---- */
.contact{text-align:center;border-top:1px solid var(--line);overflow:hidden}
.contact h2{font-size:clamp(40px,8vw,110px)}
.contact .mail{display:inline-block;margin-top:12px;font:700 clamp(18px,2.6vw,30px)/1.2 var(--mono);text-decoration:none;color:var(--ink);border-bottom:2px solid var(--pink);padding-bottom:4px}
.contact .mail:hover{color:var(--pink)}
.form{max-width:620px;margin:26px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}
.form label{display:grid;gap:6px;font:700 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.form .full{grid-column:1/-1}
.form input,.form textarea,.form select{font:400 16px/1.4 var(--body);color:var(--ink);background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:13px 14px;width:100%;outline:none;transition:border-color .2s}
.form textarea{min-height:140px;resize:vertical}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--teal)}
.form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form button{grid-column:1/-1;justify-self:center;margin-top:6px;cursor:pointer}
.form__msg{grid-column:1/-1;text-align:center;font:400 22px/1.2 var(--osd);min-height:26px;color:var(--teal)}
.form__msg.is-err{color:var(--v3)}
@media (max-width:640px){.form{grid-template-columns:1fr}}
.social{display:flex;gap:22px;justify-content:center;margin-top:34px;flex-wrap:wrap}
.social a{font:700 12px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
.social a:hover{color:var(--ink)}
footer{padding:34px 28px 46px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font:400 12px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}

/* ---- links page ---- */
.links{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:64px 20px 40px;text-align:center}
.links__mark{width:120px;margin:0 auto 18px;animation:rgb 6s infinite}
.links__name{font:400 34px/1.1 var(--hand);color:var(--label)}
.links__sub{font:400 12px/1.6 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.links__list{display:flex;flex-direction:column;gap:14px;width:min(460px,100%);margin-top:34px}
.links__list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--label);color:#151515;border-radius:6px;text-decoration:none;font:400 21px/1.1 var(--hand);transition:transform .15s;box-shadow:0 3px 0 rgba(0,0,0,.5)}
.links__list a small{font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#5a564e}
.links__list a:hover{transform:translateY(-2px) rotate(-.4deg)}
.links__list a.featured{background:var(--pink)}
.links .stripes{width:min(460px,100%);margin-top:40px;border-radius:2px;overflow:hidden}

/* ---- proposal ---- */
.prop-hero{padding:150px 0 60px}
.prop-hero h1{font:900 clamp(38px,7vw,88px)/.95 var(--head);font-style:italic;font-stretch:112%;text-transform:uppercase;margin:6px 0 22px}
.prop-hero h1 em{color:var(--pink)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.card{border:1px solid var(--line);border-radius:10px;padding:30px;background:var(--bg2)}
.card h3{font:400 28px/1.1 var(--hand);color:var(--label);margin-bottom:6px}
.card .price{font:700 34px/1 var(--mono);color:var(--teal);margin:18px 0}
.card ul{list-style:none;color:#cdc9c0}
.card li{padding:9px 0;border-top:1px dashed var(--line);font-size:15px}

/* ---- responsive ---- */
@media (max-width:900px){
  .about{grid-template-columns:1fr;gap:56px}
  .library--h{grid-template-columns:1fr}
  .library--v{grid-auto-columns:calc((100% - 2*16px)/2.4);gap:16px}
  .osd-tr,.osd-br{display:none}
}
@media (max-width:640px){
  .nav{padding:14px 18px}
  .nav__links{gap:14px}
  .nav__links a:not(.rec){display:none}
  .wrap{padding:0 20px}
  section{padding:80px 0}
  .osd-tl{left:20px}.osd-bl{left:20px}
  .library--v{grid-auto-columns:calc((100% - 14px)/1.7);gap:14px}
  .tile__title{font-size:18px}.tile--v .tile__title{font-size:15px}
  footer{justify-content:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
