/* Archive room: a dark desk under one lamp, real paper folders, a light security HUD on top. */
@font-face{font-family:Plex;font-weight:400;src:url(../fonts/plex-ar-400.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Plex;font-weight:500;src:url(../fonts/plex-ar-500.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Plex;font-weight:700;src:url(../fonts/plex-ar-700.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:Plex;font-weight:400;src:url(../fonts/plex-la-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:Plex;font-weight:500;src:url(../fonts/plex-la-500.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:Plex;font-weight:700;src:url(../fonts/plex-la-700.woff2) format('woff2');unicode-range:U+0000-00FF,U+2000-206F}
@font-face{font-family:JB;font-weight:400;src:url(../fonts/jb-400.woff2) format('woff2')}
@font-face{font-family:JB;font-weight:700;src:url(../fonts/jb-700.woff2) format('woff2')}
@font-face{font-family:IS;font-style:italic;src:url(../fonts/is-italic.woff2) format('woff2')}

:root{
  --night:#0b0812; --desk:#130e1d; --cream:#f3ecff; --lav:#c9b2ff; --muted:#a395c4; --dim:#6f6390;
  --line:rgba(201,178,255,.16); --line2:rgba(201,178,255,.32);
  --paper:#ece6f4; --paper2:#ddd5ea; --ink:#22183a; --ink2:#5d4f80; --pink:#c9b2ff;
  --sans:Plex,system-ui,sans-serif; --mono:JB,ui-monospace,monospace; --serif:IS,Georgia,serif;
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
  --fibre:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9 .035' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .12 0 0 0 0 .3 0 0 0 .10 0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23f)'/%3E%3C/svg%3E");
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--night)}
body{font-family:var(--sans);color:var(--cream);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--lav);outline-offset:3px}
.mono{font-family:var(--mono);direction:ltr;unicode-bidi:isolate;letter-spacing:.08em}
.serif{font-family:var(--serif);font-style:italic;direction:ltr;unicode-bidi:isolate}

/* ---------- desk + lamp + HUD layers ---------- */
.room{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
   radial-gradient(70vw 60vh at 50% 0%,rgba(255,240,225,.10),rgba(255,240,225,0) 70%),
   radial-gradient(120vw 90vh at 50% 30%,#1d1530 0%,#130e1d 45%,#09060e 100%)}
.room::before{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.9}
.room::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 2px,transparent 2px 9px),
             radial-gradient(ellipse at 50% 40%,transparent 50%,rgba(0,0,0,.55) 100%)}
.hex{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='97'%3E%3Cpath d='M28 0l28 16v32L28 64 0 48V16zM28 64v33' fill='none' stroke='%23c9b2ff' stroke-width='1'/%3E%3C/svg%3E");
  mask-image:radial-gradient(ellipse at 50% 20%,#000 0%,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 50% 20%,#000 0%,transparent 70%)}
.scan{position:fixed;inset:0;z-index:60;pointer-events:none;opacity:.035;
  background:repeating-linear-gradient(0deg,#fff 0 1px,transparent 1px 4px)}
.brk{position:fixed;width:26px;height:26px;z-index:61;pointer-events:none;border-color:var(--line2);border-style:solid;border-width:0}
.brk.tl{top:calc(12px + env(safe-area-inset-top,0px));left:12px;border-top-width:1.5px;border-left-width:1.5px}
.brk.tr{top:calc(12px + env(safe-area-inset-top,0px));right:12px;border-top-width:1.5px;border-right-width:1.5px}
.brk.bl{bottom:12px;left:12px;border-bottom-width:1.5px;border-left-width:1.5px}
.brk.br{bottom:12px;right:12px;border-bottom-width:1.5px;border-right-width:1.5px}

/* ---------- HUD bar ---------- */
.hud{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px max(28px,env(safe-area-inset-right,0px)) 14px max(28px,env(safe-area-inset-left,0px));
  background:linear-gradient(180deg,rgba(9,6,14,.92),rgba(9,6,14,.6));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.hud .logo{height:34px;width:auto}
.hud .mid{font-size:11.5px;color:var(--muted);display:flex;gap:18px;align-items:center}
.hud .mid i{width:7px;height:7px;border-radius:50%;background:#9be7b0;box-shadow:0 0 0 3px rgba(155,231,176,.12);display:inline-block}
.hud .right{display:flex;align-items:center;gap:14px}
.prog{font-size:13px;color:var(--muted);white-space:nowrap}
.prog b{color:var(--cream);font-family:var(--mono)}
.snd{width:36px;height:36px;border:1px solid var(--line2);border-radius:10px;display:grid;place-items:center;color:var(--muted)}
.snd svg{width:18px;height:18px}
.snd[aria-pressed="false"] .on{display:none}.snd[aria-pressed="true"] .off{display:none}

/* ---------- hero ---------- */
main{position:relative;z-index:2;max-width:1240px;margin:0 auto;
  padding-block:56px 140px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.hero{text-align:center;margin-bottom:56px}
.hero .kick{font-size:12px;color:var(--muted);margin-bottom:18px}
.hero h1{font-weight:700;font-size:clamp(46px,8vw,92px);line-height:1.08;letter-spacing:0;text-wrap:balance}
.hero h1 span{color:var(--lav)}
.hero p{max-width:620px;margin:18px auto 0;color:var(--muted);font-size:clamp(16px,2vw,19px);line-height:1.8}
.meta{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:26px}
.meta span{font-size:11.5px;color:var(--lav);border:1px solid var(--line2);border-radius:999px;padding:7px 14px;background:rgba(201,178,255,.04)}

/* ---------- folders on the desk ---------- */
.folders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px 44px}
@media (max-width:980px){.folders{grid-template-columns:repeat(2,minmax(0,1fr));gap:52px 28px}}
@media (max-width:560px){.folders{grid-template-columns:minmax(0,1fr);gap:44px}}
.folder{position:relative;display:block;width:100%;aspect-ratio:500/452;text-align:start;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.folder:nth-child(3n+1){transform:rotate(-.8deg)}.folder:nth-child(3n+2){transform:rotate(.6deg)}.folder:nth-child(3n){transform:rotate(-.3deg)}
.folder::after{content:"";position:absolute;left:4%;right:4%;bottom:-18px;height:40px;border-radius:50%;background:rgba(0,0,0,.6);filter:blur(18px);z-index:-1}
.folder svg{position:absolute;left:0;width:100%;height:auto;overflow:visible}
.folder .fb{top:26.5%;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35))}
.folder .ff{top:26.5%;filter:drop-shadow(0 -5px 9px rgba(28,8,44,.42)) drop-shadow(0 -1px 1px rgba(28,8,44,.3));z-index:3}
.peek{position:absolute;inset:0;z-index:2;pointer-events:none}
.peek>*{position:absolute;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.folder:hover,.folder:focus-visible{transform:translateY(-6px) rotate(0deg)}
.folder:hover .peek>*,.folder:focus-visible .peek>*{transform:translateY(-16px) rotate(var(--r,0deg))}
.peek>*{transform:rotate(var(--r,0deg))}
.card{background:#f3eef6;padding:4px;border-radius:5px;box-shadow:0 2px 3px rgba(0,0,0,.35),0 10px 18px rgba(0,0,0,.32)}
.card img{width:100%;border-radius:2px}
.pol{background:#f4f1ee;padding:7px 7px 26px;box-shadow:0 2px 3px rgba(0,0,0,.35),0 12px 20px rgba(0,0,0,.32)}
.pol img{width:100%;aspect-ratio:1/1;object-fit:cover}
.cal-mini{background:var(--paper);color:var(--ink);border-radius:4px;padding:10px;box-shadow:0 10px 18px rgba(0,0,0,.32);background-image:var(--fibre)}
.cal-mini .h{font-size:10px;font-weight:700;display:flex;justify-content:space-between;margin-bottom:6px}
.cal-mini .g{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-mini .g i{aspect-ratio:1;border-radius:2px;background:rgba(34,24,58,.08);font-style:normal;font-size:7px;display:grid;place-items:center;font-family:var(--mono)}
.cal-mini .g i.on{background:#6b52a8;color:#fff}
.flabel{position:absolute;z-index:4;left:7%;right:7%;bottom:7.5%;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;pointer-events:none}
.flabel .t{display:block}
.flabel .t b{display:block;font-weight:700;font-size:clamp(20px,2.3vw,27px);color:var(--fi);line-height:1.2}
.flabel .t small{display:block;font-size:11px;color:var(--fi);opacity:.72;margin-bottom:6px}
.flabel .n{font-family:var(--mono);font-weight:700;font-size:clamp(34px,4vw,48px);line-height:.9;color:var(--fi);opacity:.85;direction:ltr}
.reviewed{position:absolute;z-index:5;top:52%;left:10%;transform:rotate(-12deg) scale(1.3);opacity:0;pointer-events:none;
  font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.2em;color:var(--fi);border:2px solid var(--fi);border-radius:6px;padding:5px 10px;transition:.35s}
.folder.seen .reviewed{opacity:.55;transform:rotate(-12deg) scale(1)}

/* close-file button */
.closebar{position:fixed;z-index:45;left:0;right:0;bottom:0;display:flex;justify-content:center;
  padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));background:linear-gradient(0deg,rgba(9,6,14,.95),rgba(9,6,14,0));pointer-events:none}
.btn-close-file{pointer-events:auto;display:flex;align-items:center;gap:14px;padding:14px 26px 14px 22px;border-radius:14px;
  background:linear-gradient(180deg,#3a2a62,#271c45);border:1px solid var(--line2);box-shadow:0 10px 30px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.08);
  font-weight:700;font-size:17px;transition:transform .2s}
.btn-close-file:hover{transform:translateY(-2px)}
.btn-close-file svg{width:22px;height:22px;color:var(--lav)}
.btn-close-file small{font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:400}

/* ---------- gate ---------- */
.gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:var(--night);padding:24px;transition:opacity .6s,visibility .6s}
.gate.gone{opacity:0;visibility:hidden}
.gate::before{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.7}
.gate .box{position:relative;width:min(560px,100%);border:1px solid var(--line2);border-radius:18px;padding:30px 28px 28px;
  background:linear-gradient(180deg,rgba(32,23,52,.85),rgba(16,11,26,.9));box-shadow:0 30px 80px rgba(0,0,0,.6)}
.gate .bar{display:flex;gap:7px;margin-bottom:22px}.gate .bar i{width:11px;height:11px;border-radius:50%;background:#3b2f57}
.gate .logo{height:38px;margin-bottom:24px}
.gate pre{font-family:var(--mono);font-size:13px;line-height:1.95;color:var(--muted);direction:ltr;text-align:left;white-space:pre-wrap;min-height:126px}
.gate pre .ok{color:#9be7b0}.gate pre .hl{color:var(--lav)}
.gate pre span{display:block;opacity:0;transform:translateY(3px);transition:.3s}
.gate pre span.in{opacity:1;transform:none}
.gate h2{font-size:30px;font-weight:700;margin:22px 0 4px}
.gate p{color:var(--muted);font-size:15px}
.gate .enter{margin-top:24px;width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-radius:12px;
  background:var(--lav);color:#1a1230;font-weight:700;font-size:17px;opacity:0;transform:translateY(6px);transition:.4s}
.gate .enter.in{opacity:1;transform:none}
.gate .enter small{font-family:var(--mono);font-size:11px;letter-spacing:.12em}

/* ---------- opened file (viewer) ---------- */
.viewer{position:fixed;inset:0;z-index:70;display:none;background:rgba(6,4,10,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:calc(24px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px));overflow-y:auto}
.viewer.open{display:block;animation:fade .25s}
@keyframes fade{from{opacity:0}}
.vf{position:relative;max-width:1180px;margin:20px auto 40px;animation:lift .45s cubic-bezier(.2,.8,.2,1)}
@keyframes lift{from{transform:translateY(30px) rotate(-.6deg);opacity:0}}
.vtab{display:inline-flex;align-items:center;gap:14px;margin-inline-start:42px;padding:14px 26px 12px;border-radius:16px 16px 0 0;background:var(--b);color:var(--fi);position:relative;z-index:1}
.vtab b{font-size:22px}
.vtab small{font-size:11px;opacity:.75}
.vpanel{position:relative;background:var(--f);color:var(--fi);border-radius:18px;padding:34px clamp(18px,3.5vw,44px) 44px;box-shadow:0 30px 70px rgba(0,0,0,.55)}
.vpanel::before,.vtab::before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:var(--fibre);pointer-events:none;mix-blend-mode:multiply;opacity:.9}
.vpanel>*{position:relative}
.vx{position:absolute;top:18px;left:18px;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(34,24,58,.12);color:var(--fi);z-index:2}
.vx svg{width:20px;height:20px}
.vintro{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;padding-bottom:22px;margin-bottom:28px;border-bottom:1.5px dashed rgba(34,24,58,.25)}
.vintro h3{font-size:clamp(28px,4vw,42px);font-weight:700;line-height:1.15}
.vintro p{max-width:560px;margin-top:8px;line-height:1.8;opacity:.85}
.vintro .stampmini{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;border:2px solid currentColor;border-radius:6px;padding:6px 12px;transform:rotate(-3deg);opacity:.75}

/* sheets/cards inside a file */
.grid-posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:26px 20px}
.doc{display:block;text-align:start;transition:transform .25s}
.doc:hover{transform:translateY(-4px) rotate(-.6deg)}
.doc .card{padding:5px}
.doc .cap{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:14px;font-weight:500;line-height:1.4}
.doc .cap .mono{font-size:11px;opacity:.7;padding-top:2px;flex:none}

.rows{display:grid;gap:18px}
.row{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:24px;align-items:center;padding:16px;border-radius:14px;background:rgba(255,255,255,.22);border:1px solid rgba(34,24,58,.10)}
.row .card{width:150px}
.row h4{font-size:21px;font-weight:700;line-height:1.35}
.row .sub{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;font-size:13px;opacity:.75}
.row p{margin-top:8px;line-height:1.75;opacity:.85;max-width:560px}
.acts{display:flex;flex-direction:column;gap:10px}
.b{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 18px;border-radius:11px;font-weight:700;font-size:15px;white-space:nowrap;text-decoration:none;transition:transform .2s}
.b:hover{transform:translateY(-2px)}
.b.dark{background:var(--ink);color:var(--paper)}
.b.ghost{border:1.5px solid rgba(34,24,58,.35)}
.b svg{width:16px;height:16px}
@media (max-width:720px){.row{grid-template-columns:96px minmax(0,1fr)}.row .card{width:96px}.acts{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}.acts .b{flex:1}}

.ev-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:44px;align-items:start}
@media (max-width:900px){.ev-wrap{grid-template-columns:minmax(0,1fr)}}
.sheet{background:var(--paper);color:var(--ink);border-radius:6px;padding:26px 26px 18px;box-shadow:0 14px 30px rgba(0,0,0,.25);background-image:var(--fibre);transform:rotate(-.6deg)}
.sheet h5{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--ink2);margin-bottom:12px}
.tl{list-style:none}
.tl li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:16px;padding:15px 0;border-top:1px solid rgba(34,24,58,.15)}
.tl li:first-child{border-top:0}
.tl .mono{font-weight:700;font-size:14px;color:var(--ink2);padding-top:3px}
.tl b{display:block;font-size:19px}
.tl small{display:block;font-size:13px;color:var(--ink2);margin-top:3px}
.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px;padding-top:12px}
.photos .pol{display:block;padding:10px 10px 0;transition:transform .25s}
.photos .pol:nth-child(odd){transform:rotate(-2.4deg)}.photos .pol:nth-child(even){transform:rotate(2deg)}
.photos .pol:hover{transform:rotate(0) translateY(-4px)}
.photos .pol span{display:block;height:44px;line-height:44px;text-align:center;color:var(--ink);font-weight:700;font-size:15px}

.champs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:860px){.champs{grid-template-columns:minmax(0,1fr)}}
.dos{position:relative;background:var(--paper);color:var(--ink);border-radius:8px;padding:22px 22px 20px;box-shadow:0 14px 30px rgba(0,0,0,.25);background-image:var(--fibre);overflow:hidden}
.dos .top{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink2);padding-left:34px}
.dos .rk{font-family:var(--mono);font-weight:700;font-size:64px;line-height:1;margin:18px 0 6px;color:#4b3878}
.dos .pl{font-size:15px;color:var(--ink2)}
.dos h4{font-size:28px;font-weight:700;margin:4px 0 18px}
.dos .thumb{display:block;border-radius:4px;overflow:hidden;box-shadow:0 6px 14px rgba(0,0,0,.25);transition:transform .25s}
.dos .thumb:hover{transform:scale(1.02)}
.dos .clipped{position:absolute;top:-6px;left:22px;width:20px;height:58px;border:4px solid #a9a3b6;border-radius:12px;border-bottom-color:transparent}
.champ-foot{display:flex;align-items:center;gap:20px;margin-top:30px;flex-wrap:wrap}

.cal{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:36px;align-items:start}
@media (max-width:900px){.cal{grid-template-columns:minmax(0,1fr)}}
.calsheet{background:var(--paper);color:var(--ink);border-radius:8px;padding:22px;box-shadow:0 14px 30px rgba(0,0,0,.25);background-image:var(--fibre)}
.calsheet .ch{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}
.calsheet .ch b{font-size:26px}
.wd,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.wd span{font-size:12px;text-align:center;color:var(--ink2);padding-bottom:6px}
.day{position:relative;aspect-ratio:1/1;border-radius:8px;border:1px solid rgba(34,24,58,.12);background:rgba(255,255,255,.35);display:flex;flex-direction:column;justify-content:space-between;padding:6px;text-align:start;font-family:var(--mono);font-size:13px;color:var(--ink2);transition:.2s}
.day.has{color:var(--ink);font-weight:700;background:#fff}
.day.has:hover{transform:translateY(-2px);box-shadow:0 6px 12px rgba(34,24,58,.15)}
.day.sel{background:var(--ink);color:var(--paper)}
.day .dots{display:flex;gap:3px;flex-wrap:wrap}
.day .dots i{width:7px;height:7px;border-radius:50%}
.day.blank{border:0;background:none}
.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:16px;font-size:12px;color:var(--ink2)}
.legend span{display:flex;align-items:center;gap:6px}.legend i{width:9px;height:9px;border-radius:50%}
.dlist h5{font-family:var(--mono);font-size:13px;letter-spacing:.14em;margin-bottom:6px;opacity:.75}
.dlist h4{font-size:26px;margin-bottom:16px}
.dlist .it{display:grid;grid-template-columns:74px minmax(0,1fr);gap:16px;align-items:center;padding:12px;border-radius:12px;background:rgba(255,255,255,.25);margin-bottom:12px;text-align:start;width:100%;transition:.2s}
.dlist .it:hover{background:rgba(255,255,255,.45)}
.dlist .it img{width:74px;height:74px;object-fit:cover;object-position:top;border-radius:6px}
.dlist .it .ph{width:74px;height:74px;border-radius:6px;display:grid;place-items:center;background:var(--ink);color:var(--paper);font-family:var(--mono);font-size:11px}
.dlist .it b{display:block;font-size:16px;line-height:1.4}
.dlist .it small{display:block;font-size:12px;opacity:.7;margin-top:3px}
.dlist .empty{opacity:.7;line-height:1.8}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:90;display:none;background:rgba(5,3,9,.94);
  padding:calc(16px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lb.open{display:flex;flex-direction:column;animation:fade .2s}
.lb .top{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px}
.lb .top .mono{font-size:12px;color:var(--muted)}
.lb .top b{display:block;font-size:17px}
.lb .stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative}
.lb .stage img{max-height:100%;max-width:100%;width:auto;object-fit:contain;border-radius:6px;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.lb .nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(201,178,255,.12);border:1px solid var(--line2);display:grid;place-items:center}
.lb .nav svg{width:20px;height:20px}
.lb .prev{right:0}.lb .next{left:0}
.lb .x{width:44px;height:44px;border-radius:12px;border:1px solid var(--line2);display:grid;place-items:center}
.lb .x svg{width:20px;height:20px}
.lb .dots{display:flex;justify-content:center;gap:6px;padding-top:12px}
.lb .dots i{width:6px;height:6px;border-radius:50%;background:rgba(201,178,255,.25)}
.lb .dots i.on{background:var(--lav);width:18px;border-radius:3px}

/* ---------- closing the file ---------- */
.closing{position:fixed;inset:0;z-index:95;display:none;place-items:center;background:rgba(6,4,10,.9);overflow-y:auto;
  padding:calc(24px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 24px max(16px,env(safe-area-inset-left,0px))}
.closing.open{display:flex;flex-direction:column;align-items:center;animation:fade .3s}
.case{position:relative;width:min(560px,100%);margin:auto 0;padding:20px 0;animation:lift .5s cubic-bezier(.2,.8,.2,1)}
.case .ctab{display:inline-block;margin-inline-start:30px;padding:12px 22px 10px;border-radius:14px 14px 0 0;background:#231947;font-size:12px;color:var(--lav)}
.case .cover{position:relative;background:#2b1f57;border-radius:12px;padding:34px 34px 210px;box-shadow:0 30px 80px rgba(0,0,0,.6);overflow:hidden}
.case .cover::before{content:"";position:absolute;inset:0;background-image:var(--noise),radial-gradient(ellipse at 50% 0%,rgba(255,240,225,.10),transparent 70%);pointer-events:none}
.case .ed{font-size:11px;color:var(--lav);text-align:left}
.case h3{font-size:clamp(40px,8vw,60px);line-height:1.1;margin-top:14px}
.case h3 span{color:#e9deff;display:block}
.case .stats{margin-top:26px;border-top:1.5px solid var(--line2)}
.case .st{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1.5px solid var(--line2)}
.case .st b{font-family:var(--mono);font-size:clamp(38px,7vw,54px);line-height:1;direction:ltr}
.case .st span{text-align:right}
.case .st span i{display:block;font-style:normal;font-size:20px;font-weight:500}
.case .st span small{display:block;font-size:10.5px;color:var(--lav);margin-top:4px}
.case .bigstamp{position:absolute;left:50%;top:auto;bottom:105px;z-index:3;text-align:center;color:#F1E7FF;border:6px solid #F1E7FF;border-radius:16px;padding:10px 26px 14px;
  opacity:0;transform:translate(-50%,50%) rotate(-8deg) scale(2.2);mix-blend-mode:screen;pointer-events:none;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.6'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
          mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.6'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
.case .bigstamp.hit{animation:stamp .38s cubic-bezier(.3,1.4,.5,1) forwards}
@keyframes stamp{to{opacity:.9;transform:translate(-50%,50%) rotate(-8deg) scale(1)}}
.case .bigstamp .a{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.3em}
.case .bigstamp .b{font-weight:700;font-size:74px;line-height:1.15}
.case .bigstamp .c{font-size:15px;font-weight:500}
.case.shake{animation:shake .3s}
@keyframes shake{30%{transform:translate(2px,3px)}60%{transform:translate(-2px,-1px)}}
.case .after{margin-top:22px;text-align:center;opacity:0;transition:opacity .6s}
.case .after.in{opacity:1}
.case .after p{color:var(--muted);margin-bottom:16px}
.case .after .b{background:var(--lav);color:#1a1230}

@media (max-width:640px){
  .hud .mid{display:none}
  .hero{margin-bottom:40px}
  main{padding-block:36px 130px}
  .vtab{margin-inline-start:18px;padding:12px 18px 10px}
  .vtab b{font-size:19px}
  .vpanel{padding-top:64px}
  .grid-posts{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
  .photos{gap:22px 14px}
  .lb .nav{display:none}
  .gate pre{font-size:11.5px}
  .case .cover{padding:28px 22px 190px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ---------- events: attendance highlight + closing reports ---------- */
.tl em{display:inline-block;font-style:normal;font-size:12.5px;font-weight:700;color:#4b2f8f;background:rgba(124,92,214,.14);border-radius:4px;padding:3px 8px;margin-top:6px}
.ev-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0;margin:0 0 46px;border:1px solid var(--line2);border-radius:14px;overflow:hidden;
  background:radial-gradient(120% 140% at 85% 0%,rgba(150,110,255,.22),transparent 60%),linear-gradient(180deg,#1c1430,#140e22)}
.ev-hero::before{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.6;pointer-events:none}
.eh-main{position:relative;padding:30px 34px 28px}
.eh-k,.rep header .mono{font-size:11px;letter-spacing:.18em;color:var(--muted)}
.eh-num{margin:10px 0 4px;line-height:1}
.eh-num mark,.rs-big mark{font-family:var(--mono);font-weight:700;color:#1a1033;padding:0 .12em;border-radius:.08em;
  background:linear-gradient(100deg,rgba(201,178,255,0) .4%,#c9b2ff 2.5%,#b89cff 60%,#d4c2ff 97%,rgba(201,178,255,0) 99.6%);
  box-decoration-break:clone;-webkit-box-decoration-break:clone;box-shadow:0 0 40px rgba(170,130,255,.35)}
.eh-num mark{font-size:clamp(76px,11vw,128px);letter-spacing:-.03em}
.eh-main p{font-size:20px;font-weight:700;margin-top:12px}
.eh-sum{display:inline-block;margin-top:10px;font-size:12px;color:var(--dim);letter-spacing:.1em}
.eh-side{position:relative;display:grid;border-inline-start:1px solid var(--line)}
.eh-side>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:18px 26px;border-top:1px solid var(--line)}
.eh-side>div:first-child{border-top:0}
.eh-side b,.rs-row b{font-size:30px;color:var(--cream);line-height:1}
.eh-side b small,.rs-row b small{font-size:.5em;color:var(--muted);margin-inline-start:2px}
.eh-side span:not(.stars),.rs-row span:not(.stars){flex-basis:100%;font-size:13.5px;color:var(--muted)}
.stars{position:relative;display:inline-block;font-size:15px;letter-spacing:2px;line-height:1;color:rgba(201,178,255,.25);direction:ltr}
.stars::before{content:"\2605\2605\2605\2605\2605"}
.stars::after{content:"\2605\2605\2605\2605\2605";position:absolute;inset:0;width:var(--p);overflow:hidden;color:#c9b2ff;white-space:nowrap}
.rep{margin-top:44px;background:var(--paper);color:var(--ink);background-image:var(--fibre);border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.35);overflow:hidden}
.rep header{display:flex;justify-content:space-between;padding:12px 24px;background:#2a1e48;}
.rep header .mono{color:#cbbcf0}
.rep-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;padding:28px 28px 8px}
.rep h4{font-size:26px;line-height:1.35}
.rep .motto{margin-top:6px;font-size:16px;color:#5a3fa6;font-weight:700}
.meta-l{list-style:none;margin-top:14px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--ink2)}
.meta-l li.mono{letter-spacing:.04em}
.axes{margin-top:20px;display:flex;flex-wrap:wrap;gap:8px}
.axes h6{flex-basis:100%;font-size:11px;letter-spacing:.18em;color:var(--ink2);font-weight:700}
.axes span{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;border:1px solid rgba(34,24,58,.2);border-radius:999px;padding:6px 14px 6px 12px;background:rgba(255,255,255,.4)}
.axes i{font-style:normal;font-size:11px;color:#6c4fc0}
.rep-stats{display:grid;gap:14px;align-content:start}
.rs-big{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:10px;background:#1c1430}
.rs-big mark{font-size:64px;line-height:1.05;box-shadow:0 0 30px rgba(170,130,255,.3)}
.rs-big span{color:var(--cream);font-weight:700;font-size:17px;line-height:1.5}
.rs-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rs-row>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:14px 16px;border-radius:10px;border:1px solid rgba(34,24,58,.16);background:rgba(255,255,255,.45)}
.rs-row b{color:var(--ink);font-size:26px}
.rs-row b small{color:var(--ink2)}
.rs-row span:not(.stars){color:var(--ink2);font-size:13px}
.rs-row .stars{color:rgba(34,24,58,.18)}.rs-row .stars::after{color:#6c4fc0}
.rep-photos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;padding:22px 28px 30px}
.rep-photos .pol{display:block;padding:8px 8px 0;transition:transform .25s;text-align:start}
.rep-photos .pol:nth-child(odd){transform:rotate(-1.6deg)}.rep-photos .pol:nth-child(even){transform:rotate(1.4deg)}
.rep-photos .pol:hover{transform:rotate(0) translateY(-4px)}

.rep-photos .pol span{display:block;min-height:46px;padding:6px 2px 8px;font-size:12px;line-height:1.45;color:var(--ink);font-weight:700}
@media (max-width:1100px){.rep-photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.ev-hero{grid-template-columns:minmax(0,1fr)}.eh-side{border-inline-start:0;border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr))}.eh-side>div{border-top:0;border-inline-start:1px solid var(--line);padding:16px}.eh-side>div:first-child{border-inline-start:0}
  .rep-body{grid-template-columns:minmax(0,1fr)}}
@media (max-width:560px){.eh-main{padding:24px 20px}.eh-side{grid-template-columns:minmax(0,1fr)}.eh-side>div{border-inline-start:0;border-top:1px solid var(--line)}.eh-side>div:first-child{border-top:0}
  .rep-body{padding:22px 18px 4px}.rep-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}.rs-big mark{font-size:52px}.rep h4{font-size:22px}}
.rep header .rk{font-size:13px;font-weight:700;color:#e6dcff}
.rep .en{margin-top:2px;font-size:19px;color:#5a3fa6}
.rep .partner{display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:14.5px;font-weight:700;color:#fff;background:linear-gradient(90deg,#5b3fb0,#7c5cd6);padding:7px 14px;border-radius:6px;box-shadow:0 4px 12px rgba(91,63,176,.3)}
.rep .partner::before{content:"";width:8px;height:8px;border-radius:50%;background:#e6dcff}
.rep-photos .pol img{aspect-ratio:var(--ar,3/4)}
.rep.wide .rep-photos{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:560px){.rep.wide .rep-photos{grid-template-columns:minmax(0,1fr)}}
.ev-hero{color:var(--cream)}
.eh-num{margin:22px 0 6px}
.eh-num mark{display:inline-block;line-height:1;padding:.06em .14em .02em;box-shadow:0 0 28px rgba(170,130,255,.28)}
.eh-main p{color:var(--cream);position:relative;z-index:1}
.eh-side b span,.rs-row b span{font-size:inherit!important;color:inherit!important;flex-basis:auto!important}
.ev-wrap.solo{grid-template-columns:minmax(0,1fr);max-width:620px;margin-inline:auto}
@media (max-width:700px){
  .rep-photos,.rep.wide .rep-photos{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:16px 18px 26px;scrollbar-width:none}
  .rep-photos::-webkit-scrollbar{display:none}
  .rep-photos .pol{flex:0 0 58%;scroll-snap-align:start}
  .rep.wide .rep-photos .pol{flex-basis:80%}
  .rep-photos .pol:nth-child(n){transform:none}
}
.rep header{gap:12px;align-items:center}
.rep header .cr{font-style:normal}
@media (max-width:560px){.rep header .cr{display:none}.rep header{padding:11px 18px}
  .axes span{font-size:13px;padding:5px 12px 5px 10px}}

.dos .prize{display:flex;align-items:baseline;justify-content:space-between;margin:-8px 0 16px;padding:8px 12px;border:1px dashed rgba(75,56,120,.35);border-radius:6px;font-size:14px;color:var(--ink2)}
.dos .prize b{font-size:20px;color:#4b3878}
.dos .prize .mono{font-weight:700}
