*{box-sizing:border-box}
html,body{height:100%}
:root{
  --bg:#f6f7fb; --card:#ffffff; --ink:#0f172a; --muted:#64748b; --blue:#2563eb;
  --ring:#e9edf3; --shadow:0 8px 20px rgba(0,0,0,.06);
}
body{margin:0; font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif; background:var(--bg); color:var(--ink)}
.container{max-width:1180px; margin:0 auto; padding:16px 24px}

/* Header */
.site-header{position:sticky; top:0; z-index:20; background:rgba(246,247,251,.9); backdrop-filter:saturate(1.1) blur(8px); border-bottom:1px solid var(--ring)}
.site-header .bar{display:flex; align-items:center; justify-content:space-between; gap:16px}
.brand{display:flex; align-items:center; gap:10px; font-weight:700; letter-spacing:.01em}
.logo{display:inline-grid; place-items:center; width:28px; height:28px; border-radius:999px; background:#111827; color:#fff; font-size:14px}
.search input{width:min(420px, 46vw); padding:10px 14px; border:1px solid var(--ring); border-radius:12px; background:#fff; box-shadow:var(--shadow)}

.filters{display:flex; gap:8px; flex-wrap:wrap; padding:10px 0 4px}
.chip{padding:8px 12px; border:1px solid var(--ring); background:#fff; border-radius:999px; cursor:pointer; box-shadow:var(--shadow)}
.chip.is-active{background:#111827; color:#fff; border-color:#111827}

/* Grid & tiles */
.grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:18px; padding-block:18px}
.tile{display:grid; grid-template-rows:auto 1fr; gap:12px; background:var(--card); border:1px solid var(--ring);
  border-radius:18px; cursor:pointer; padding:12px; text-align:left; transition:.2s; box-shadow:var(--shadow)}
.tile:hover{transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,.08)}
.tile-art{height:180px; border-radius:14px; overflow:hidden; position:relative; margin:0; background:#0b1220}
.blob{position:absolute; border-radius:999px}
.blob.b1{width:160px; height:160px; left:-10px; top:18px; background:radial-gradient(circle at 40% 40%, #8b5cf6, #3b82f6)}
.blob.b2{width:260px; height:140px; right:24px; bottom:18px; border-radius:18px; background:linear-gradient(135deg,#9333ea,#ef4444)}
.tile-meta{display:flex; flex-direction:column; gap:6px; padding:2px 6px 8px}
.tile-meta p{margin:0; color:var(--muted)}
.tags{display:flex; gap:8px; flex-wrap:wrap; color:#6b7280; font-size:.92rem}
.tag{padding:.25rem .6rem; border:1px solid #e4e7ee; border-radius:999px; background:#f8fafc}
.link{color:var(--blue); font-weight:600}

/* Modal */
.screen-modal{position:fixed; inset:0; z-index:9999; display:none}
.screen-modal.is-open{display:block}
.screen-backdrop{position:absolute; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(4px)}
.screen-close{
  position:fixed; top:14px; left:14px; z-index:10001;
  width:42px; height:42px; border-radius:12px; border:1px solid #e5e7eb;
  background:#ffffff; box-shadow:0 10px 24px rgba(0,0,0,.18);
  font-size:20px; line-height:1; cursor:pointer
}
.screen-close:hover{transform:translateY(-1px)}
.screen-frame-wrap{
  position:fixed;
  top:clamp(10px,2.5vw,18px); bottom:clamp(10px,2.5vw,18px);
  left:clamp(10px,2.5vw,18px); right:clamp(10px,2.5vw,18px);
  border-radius:16px; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.35);
  background:#000;
}
#screenFrame{width:100%; height:100%; border:0; display:block; background:#fff}
.loading{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-weight:600; letter-spacing:.02em; background:rgba(2,6,23,.28)}
.loading[hidden]{display:none !important}

@media (max-width: 640px){
  .tile-art{height:150px}
  .screen-close{top:10px; left:10px}
}
