/* Layout: معرض ليلي. عنوان ضخم بخط الرقعة، حلقة لوحات تدور حوله، وصالة أعمال أفقية تُثبَّت أثناء التمرير. */
:root{
  --bg:#0A0F1E; --bg2:#0E1528; --surface:#131B31; --fg:#F4F0E6; --muted:#A9B2C8; --line:#252F4B;
  --gold:#F2B84B; --teal:#3FD0C4; --rose:#EE6C4D; --ink:#0A0F1E;
  --fd:'Reem Kufi',system-ui,sans-serif; --fr:'Aref Ruqaa','Reem Kufi',serif; --fb:'IBM Plex Sans Arabic','Segoe UI',Tahoma,sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html{background:#0A0F1E;color:#F4F0E6}
body{background:#0A0F1E;background:var(--bg);color:#F4F0E6;color:var(--fg);font-family:var(--fb);font-size:16px;line-height:1.75;overflow-x:hidden;margin:0;
  padding-block:0;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.wrap{max-width:1180px;margin-inline:auto}
h1,h2,h3{font-family:var(--fd);font-weight:700;line-height:1.2;margin:0;text-wrap:balance}
p{margin:0}a{color:inherit}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}
.js .hx,.js .rv,.js .w>span{visibility:hidden}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;display:flex;align-items:center;gap:18px;padding-block:12px;
  background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--fd);font-weight:700;font-size:1.3rem;white-space:nowrap;color:var(--fg)}
.brand .lg{width:38px;height:38px;color:var(--fg);display:block}
nav{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;min-width:0;flex:1}
nav a{padding:6px 12px;border-radius:999px;text-decoration:none;color:var(--muted);font-size:.92rem;white-space:nowrap;transition:background .25s,color .25s}
nav a:hover{background:var(--surface);color:var(--fg)}
.prog{position:absolute;inset-inline:0;bottom:-1px;height:3px;background:linear-gradient(90deg,var(--teal),var(--gold),var(--rose));transform:scaleX(0);transform-origin:100% 50%}

/* hero */
.hero{position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(64px,9vw,120px) clamp(210px,24vw,300px);text-align:center}
.spot{position:absolute;inset:0;z-index:-1;background:radial-gradient(560px circle at var(--mx,50%) var(--my,25%),rgba(242,184,75,.17),transparent 62%)}
.pat{position:absolute;inset:-40%;z-index:-2;opacity:.09;width:180%;height:180%}
.orbit{position:absolute;inset:0;pointer-events:none;z-index:1}
.orb{position:absolute;left:50%;top:50%;width:clamp(86px,12vw,138px);aspect-ratio:4/5;will-change:transform}
.orb .of{width:100%;height:100%;border-radius:4px;overflow:hidden;border:3px solid #F4F0E6;box-shadow:0 20px 40px -14px rgba(0,0,0,.75)}
.orb svg{display:block;width:100%;height:100%}
.hero-c{position:relative;z-index:5}
.eyebrow{display:inline-block;color:var(--gold);font-weight:600;font-size:.95rem;margin-bottom:18px}
.big{font-size:clamp(3.4rem,14vw,10rem);line-height:1.12;display:flex;justify-content:center;gap:.22em;flex-wrap:wrap}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em .06em .26em;margin-block:-.12em -.26em}
.w>span{display:inline-block}
.ruq{font-family:var(--fr);font-weight:700;color:var(--gold)}
.lead{margin:18px auto 0;max-width:36ch;color:var(--muted);font-size:1.2rem}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.btn{position:relative;overflow:hidden;font:inherit;font-weight:600;padding:12px 26px;border-radius:999px;border:1.5px solid var(--gold);background:var(--gold);color:var(--ink);cursor:pointer;text-decoration:none;transition:translate .25s,box-shadow .25s}
.btn.ghost{background:transparent;color:var(--gold)}
.btn:hover{translate:0 -3px;box-shadow:0 14px 28px -14px var(--gold)}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(120%);transition:transform .7s}
.btn:hover::after{transform:translateX(-120%)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn.sm{padding:7px 18px;font-size:.9rem;align-self:flex-start;margin-top:auto}

.marq{overflow:hidden;border-block:1px solid var(--line);padding-block:14px;background:var(--bg2);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mt{display:flex;width:max-content}
.mt span{font-family:var(--fr);font-size:2rem;color:var(--fg);display:flex;align-items:center;gap:36px;padding-inline-end:36px;white-space:nowrap}
.mt span::after{content:"";width:12px;height:12px;background:var(--gold);transform:rotate(45deg)}

/* sections */
section{padding-block:clamp(60px,8vw,110px) 0}
.head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:30px}
.head h2{position:relative;display:inline-block;font-size:clamp(2rem,5vw,3.4rem);padding-bottom:12px}
.head h2 .rq{font-family:var(--fr);color:var(--gold)}
.ul{position:absolute;inset-inline:0;bottom:0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:100% 50%}
html:not(.js) .ul{transform:none}
.head p{color:var(--muted);max-width:46ch}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font:inherit;font-size:.9rem;padding:6px 15px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:var(--ink)}

/* moments */
.moments{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:16px}
.moment{position:relative;border-radius:6px;overflow:hidden;min-height:280px;background:var(--surface);transition:translate .4s cubic-bezier(.2,.7,.2,1)}
.moment:hover{translate:0 -6px}
.moment svg{position:absolute;inset:0;width:100%;height:100%}
.moment figcaption{position:absolute;inset-inline:0;bottom:0;padding:48px 18px 16px;background:linear-gradient(transparent,rgba(5,8,18,.9));font-family:var(--fd);font-size:1.15rem}
.moment figcaption small{display:block;font-family:var(--fb);font-size:.85rem;color:var(--muted)}
figure{margin:0}

/* horizontal gallery */
.hs-view{overflow-x:auto;scroll-snap-type:x mandatory;padding-block:8px 30px;scrollbar-width:thin}
.hs-view.pinned{overflow:hidden}
.hs-track{display:flex;gap:28px;width:max-content;padding-inline:4px}
.wc{width:min(78vw,380px);flex:none;scroll-snap-align:start;display:flex;flex-direction:column;gap:12px;transition:filter .3s}
.wc.dim{filter:opacity(.25)}
.fwrap{position:relative}
.frame{aspect-ratio:4/5;background:var(--surface);border-radius:4px;overflow:hidden;border:6px solid #F4F0E6;box-shadow:0 30px 50px -28px rgba(0,0,0,.9);will-change:transform}
.frame svg{display:block;width:100%;height:100%}
.sample{position:absolute;inset-inline-start:14px;top:14px;font-size:.7rem;background:#fff;color:#222;padding:1px 9px;border-radius:999px}
.meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.84rem}
.wc h3,.work h3{font-size:1.3rem}
.wc p,.work p{color:var(--muted);font-size:.95rem}
.react{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.rbtn{font:inherit;font-size:.85rem;display:inline-flex;gap:6px;align-items:center;padding:5px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;transition:translate .2s,border-color .2s}
.rbtn:hover{translate:0 -2px}
.rbtn svg{width:16px;height:16px}
.rbtn[aria-pressed="true"]{border-color:var(--gold);color:var(--gold)}
.rbtn[aria-pressed="true"] svg{fill:currentColor}
.rbtn.c{margin-inline-start:auto;border-style:dashed}
.sticker{font-size:.8rem;font-weight:600;color:var(--teal);border:1.5px solid var(--teal);border-radius:6px;padding:1px 9px;transform:rotate(-3deg)}
.work{display:flex;flex-direction:column;gap:12px;min-width:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:30px 22px}

/* exhibition */
.expo{display:grid;grid-template-columns:1.1fr 1fr;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.expo-art{min-height:380px;overflow:hidden;background:var(--bg2)}
.expo-art svg{display:block;width:100%;height:100%}
.expo-body{padding:clamp(22px,4vw,40px);display:flex;flex-direction:column;gap:16px}
.badge{align-self:flex-start;font-size:.8rem;font-weight:600;padding:2px 14px;border-radius:999px;background:color-mix(in srgb,var(--teal) 16%,transparent);color:var(--teal)}
.expo h3{font-size:clamp(1.7rem,3.5vw,2.4rem);color:var(--gold)}
.steps{list-style:none;margin:6px 0 0;padding:0;position:relative;display:grid;gap:18px}
.steps::before{content:"";position:absolute;inset-inline-start:7px;top:8px;bottom:8px;width:2px;background:var(--line)}
.tline{position:absolute;inset-inline-start:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--gold),var(--teal));transform:scaleY(0);transform-origin:50% 0}
html:not(.js) .tline{transform:none}
.steps li{position:relative;padding-inline-start:36px;color:var(--muted);font-size:.95rem}
.steps li::before{content:"";position:absolute;inset-inline-start:0;top:6px;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--gold)}
.steps b{color:var(--fg)}

/* workshops */
.ws{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}
#strArt{width:100%;max-width:440px;margin-inline:auto;display:block;aspect-ratio:1/1}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:24px;display:flex;flex-direction:column;gap:10px;min-width:0;transition:translate .35s cubic-bezier(.2,.7,.2,1),border-color .3s,box-shadow .3s}
.card:hover{translate:0 -6px;border-color:var(--teal);box-shadow:0 22px 34px -24px var(--teal)}
.card h3{font-size:1.25rem;color:var(--gold)}
.card p,.card li{color:var(--muted);font-size:.95rem}
.card ul{margin:0;padding-inline-start:18px}
.soon{align-self:flex-start;font-size:.78rem;font-weight:600;color:var(--gold);border:1px solid var(--gold);padding:1px 11px;border-radius:999px}
.stack{display:grid;gap:18px}

footer{margin-top:clamp(70px,9vw,120px);border-top:1px solid var(--line);padding-block:40px 36px;overflow:hidden}
.fm{font-family:var(--fr);font-weight:700;font-size:clamp(3rem,15vw,11rem);line-height:1.1;color:var(--gold);text-align:center;white-space:nowrap}
.fl{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:.9rem;margin-top:10px}

/* modal */
.modal{position:fixed;inset:0;background:rgba(3,6,14,.7);display:grid;place-items:center;padding:16px;z-index:60}
.sheet{background:var(--surface);border:1px solid var(--line);border-radius:14px;max-width:440px;width:100%;padding:26px;display:grid;gap:12px}
.sheet h3{font-size:1.4rem;color:var(--gold)}
.sheet label{font-size:.9rem;color:var(--muted)}
.sheet input,.sheet textarea{font:inherit;width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
.sheet .row{display:flex;gap:10px}
.ok{background:var(--bg);border-radius:8px;padding:12px 14px}
.bp{position:fixed;width:7px;height:7px;margin:-3px;border-radius:50%;background:var(--gold);pointer-events:none;z-index:70}

@media (max-width:820px){
  .moments,.expo,.ws{grid-template-columns:1fr}
  .moment{min-height:220px}
  .expo-art{min-height:240px}
  .top{gap:10px}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}
  .js .hx,.js .rv,.js .w>span{visibility:visible}.ul,.tline{transform:none}}

.cmts{display:grid;gap:6px;font-size:.88rem;color:var(--muted)}
.cmts b{color:var(--fg);font-weight:600}
.empty{color:var(--muted);text-align:center;padding:40px 0}
.err{background:var(--bg);border:1px solid var(--rose);color:var(--fg);border-radius:8px;padding:10px 14px;font-size:.9rem}
.frame img{display:block;width:100%;height:100%;object-fit:cover}
