/* BREMUSA site shell: menu, pages, player, intro */
:root{--k:#202020;--o:#EDE6D6;--b:#2A3FBF;--r:#8A4B32;--g:#F2A3C4;--m:#A7B865;--h:#C0283F;--pc:#0A0E20;--pf:#F5F1E8}
.top{position:relative;z-index:30;background:var(--bg)}
.hr{display:flex;gap:8px;align-items:center}
.hb{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:9px 13px;border:1px solid var(--ink);border-radius:999px;min-height:36px;line-height:1}
.hb.solid{background:var(--ink);color:var(--bg)}
#lang{font-family:'Noto Kufi Arabic',var(--mono);letter-spacing:0;font-size:13px}
.ghost{font-size:min(17vw,34vh);color:inherit;display:flex;gap:.01em;top:44%;opacity:1}
.ghost i{font-style:normal;opacity:.2;animation:gfl 7s ease-in-out infinite}
.ghost i:nth-child(1){color:var(--k)}.ghost i:nth-child(2){color:var(--b);animation-delay:-1s}.ghost i:nth-child(3){color:var(--r);animation-delay:-2s}
.ghost i:nth-child(4){color:var(--g);animation-delay:-3s;opacity:.34}.ghost i:nth-child(5){color:var(--m);animation-delay:-4s;opacity:.34}.ghost i:nth-child(6){color:var(--h);animation-delay:-5s}.ghost i:nth-child(7){color:#CDBf9F;animation-delay:-6s;opacity:.5}
@keyframes gfl{0%,100%{transform:translateY(0)}50%{transform:translateY(-3.5%)}}
.focus .ghost i{opacity:.12}
.acts{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.acts .pill{margin:0}
.title{left:auto;inset-inline-start:22px}#back{right:auto;inset-inline-end:22px}
@media (min-width:760px){#panel{left:auto;inset-inline-start:22px}[dir=rtl] #prev{left:14px}[dir=rtl] #next{right:376px}}
@media (max-width:759px){.title{inset-inline-start:16px}#back{inset-inline-end:16px}.hb{padding:8px 10px}}
[dir=rtl] body,[dir=rtl] h1,[dir=rtl] .pg h2,[dir=rtl] .pg h3,[dir=rtl] #menu button{font-family:'Noto Kufi Arabic',var(--head);letter-spacing:0}
/* paged mode */
.app.paged #stage{display:none}
#pages{position:fixed;inset:0;top:60px;z-index:20;overflow-y:auto;overflow-x:hidden;display:none;background:var(--bg);-webkit-overflow-scrolling:touch}
.app.paged~#pages,body.paged #pages{display:block}
.pg{display:none;min-height:100%}.pg.on{display:block}
.pg h2{font-family:var(--head);font-stretch:120%;font-weight:800;text-transform:uppercase;font-size:clamp(34px,8vw,96px);line-height:.95;margin:0 0 14px;text-wrap:balance}
.pg h3{font-family:var(--head);font-stretch:118%;font-weight:800;text-transform:uppercase;font-size:clamp(18px,2.4vw,26px);margin:0 0 8px}
.pg p{font-size:17px;line-height:1.5;max-width:60ch;margin:0 0 12px}
.pg .ey{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.75;margin:0 0 10px}
.sec{padding:clamp(34px,7vh,90px) clamp(18px,5vw,70px);background:var(--sb,var(--bg));color:var(--sf,var(--ink));position:relative;overflow:hidden}
.sec.tall{min-height:82vh;display:flex;flex-direction:column;justify-content:center}
.rv{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}
.bigw{position:absolute;inset-inline-end:-2vw;bottom:-3vw;font-family:var(--head);font-stretch:125%;font-weight:800;font-size:26vw;line-height:.8;opacity:.1;pointer-events:none;white-space:nowrap}
.rail{display:flex;gap:6px;overflow-x:auto;padding:18px 0 8px;scroll-snap-type:x proximity;margin:0 calc(-1*clamp(18px,5vw,70px));padding-inline:clamp(18px,5vw,70px);scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.lk{flex:none;width:clamp(120px,17vw,210px);aspect-ratio:440/900;position:relative;scroll-snap-align:center;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.lk.w{aspect-ratio:600/900;width:clamp(170px,24vw,290px)}
.lk img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .5s}
.lk img.ok{opacity:1}
.lk:hover,.lk:focus-visible{transform:translateY(-10px) scale(1.04)}
.lk span{position:absolute;left:0;right:0;bottom:-4px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.1em;opacity:0;transition:opacity .3s}
.lk:hover span{opacity:.9}
.btn{display:inline-block;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:13px 20px;border-radius:999px;border:1px solid currentColor;min-height:44px}
.btn.fill{background:var(--sf,var(--ink));color:var(--sb,var(--bg));border-color:var(--sf,var(--ink))}
.sws{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 14px}
.sws button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(128,128,128,.5)}
.sws button[aria-pressed=true]{box-shadow:0 0 0 2px var(--sb,var(--bg)),0 0 0 4px var(--sf,var(--ink))}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(18px,4vw,60px);align-items:center}
@media (max-width:759px){.grid2{grid-template-columns:1fr}#pages{top:52px}}
.frame{position:relative;height:min(74vh,720px);aspect-ratio:440/900;margin:0 auto;max-width:100%;touch-action:pan-y}
.frame.w{aspect-ratio:600/900}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.frame .bar{position:absolute;top:0;bottom:0;width:2px;background:currentColor;left:50%;pointer-events:none}
.frame .bar::after{content:"\2194";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;background:var(--sf,var(--ink));color:var(--sb,var(--bg));display:grid;place-items:center;font-size:18px}
.frame input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:18px 0}
.tile{padding:18px 14px;min-height:96px;display:flex;flex-direction:column;justify-content:space-between;font-family:var(--head);font-stretch:118%;font-weight:800;text-transform:uppercase;font-size:17px;transition:transform .4s;text-align:start}
.tile:hover{transform:scale(1.04) rotate(-1deg)}.tile small{font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.14em}
.form{display:grid;gap:10px;max-width:460px}
.form input,.form select{font:inherit;font-size:16px;padding:13px 14px;border:1px solid currentColor;border-radius:10px;background:transparent;color:inherit;width:100%}
.form select option{color:#0A0E20}
.form label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;display:grid;gap:5px}
.note{font-size:14px!important;opacity:.8}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:16px}
.card{padding:22px 18px;border-radius:14px;min-height:190px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;transition:transform .5s}
.card:hover{transform:translateY(-6px)}
.bars{display:grid;gap:6px;max-width:460px}.bars div{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px}
.bars b{display:block;height:14px;border-radius:7px;min-width:4px;transition:width .6s;border:1px solid rgba(128,128,128,.4)}
.temp{font-family:var(--head);font-stretch:125%;font-weight:800;font-size:clamp(70px,18vw,200px);line-height:.9}
input[type=range].sl{width:100%;max-width:520px;accent-color:currentColor;height:36px}
.chat{max-width:680px;display:grid;gap:10px;margin:14px 0}
.bub{padding:12px 16px;border-radius:16px;max-width:85%;font-size:16px;line-height:1.4;border:1px solid currentColor}
.bub.me{justify-self:end;background:var(--sf);color:var(--sb)}
.chipr{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.chipr button{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:10px 14px;border:1px solid currentColor;border-radius:999px;min-height:40px}
.thumbs{display:flex;gap:4px;overflow-x:auto;padding:6px 0;scrollbar-width:none}
.thumbs .lk{width:70px}.thumbs .lk[aria-pressed=true]{outline:2px solid currentColor;outline-offset:-2px;border-radius:8px}
/* menu */
#menu{position:fixed;inset:0;z-index:60;background:var(--pc);color:var(--pf);display:flex;flex-direction:column;padding:16px 22px 24px;transform:translateY(-102%);transition:transform .7s cubic-bezier(.7,0,.2,1),background .45s,color .45s;overflow-y:auto}
#menu.open{transform:none}
#menu .mh{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
#menu .mh .hb{border-color:currentColor;color:inherit}
#menu nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px;flex:1;align-content:center}
#menu nav button{display:flex;gap:14px;align-items:baseline;text-align:start;font-family:var(--head);font-stretch:122%;font-weight:800;text-transform:uppercase;font-size:clamp(22px,4.6vw,58px);line-height:1.12;padding:4px 0;opacity:0;transform:translateY(24px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1),letter-spacing .3s}
#menu.open nav button{opacity:1;transform:none}
#menu nav button:hover,#menu nav button:focus-visible{letter-spacing:.04em}
#menu nav button small{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.1em;opacity:.7;min-width:22px}
#menu .mf{display:flex;gap:6px;margin-top:14px}#menu .mf i{flex:1;height:10px;border-radius:5px}
@media (max-width:759px){#menu nav{grid-template-columns:1fr}#menu nav button{font-size:clamp(24px,7.4vw,40px)}}
#wipe{position:fixed;inset:0;z-index:55;background:var(--pc);transform:translateY(102%);pointer-events:none;display:grid;place-items:center;color:var(--pf);font-family:var(--head);font-stretch:125%;font-weight:800;text-transform:uppercase;font-size:clamp(30px,9vw,120px);text-align:center;padding:20px}
#wipe.a{animation:wipe 1s cubic-bezier(.7,0,.2,1) forwards}
@keyframes wipe{0%{transform:translateY(102%)}42%,58%{transform:none}100%{transform:translateY(-102%)}}
/* colour lab dock */
#dock{position:absolute;left:0;right:0;bottom:16px;z-index:7;display:none;justify-content:center;gap:10px;flex-wrap:wrap;padding:0 12px}
body[data-page=colour-lab] #dock{display:flex}body[data-page=colour-lab] .chips,body[data-page=colour-lab] .cap{display:none}
.focus #dock{display:none!important}
#dock button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(10,14,32,.3);transition:transform .3s}
#dock button:hover{transform:scale(1.15)}#dock button[aria-pressed=true]{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--ink)}
#dock .mx{width:auto;padding:0 16px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:conic-gradient(var(--k),var(--b),var(--r),var(--g),var(--m),var(--h),var(--o),var(--k));color:#fff;text-shadow:0 1px 2px #000}
/* player */
#player{position:fixed;top:58px;inset-inline-end:14px;z-index:40;background:var(--ink);color:var(--bg);border-radius:16px;padding:14px;width:250px;display:none;gap:10px;box-shadow:0 14px 40px rgba(0,0,0,.25)}
#player.open{display:grid}
#player .row{display:flex;gap:8px;align-items:center}
#player button{border:1px solid currentColor;border-radius:999px;padding:8px 12px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;min-height:36px}
#player .tn{font-family:var(--head);font-stretch:118%;font-weight:800;text-transform:uppercase;font-size:15px}
#player input[type=range]{flex:1;accent-color:var(--g)}
#player label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.8;cursor:pointer;text-decoration:underline}
#player input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:12px;margin-inline-start:6px}.eq i{width:2px;background:currentColor;height:4px}
.playing .eq i{animation:eq .6s ease-in-out infinite alternate}.playing .eq i:nth-child(2){animation-delay:-.2s}.playing .eq i:nth-child(3){animation-delay:-.4s}
@keyframes eq{to{height:12px}}
/* intro */
#intro{position:fixed;inset:0;z-index:80;background:#0A0E20;color:#F5F1E8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transition:transform .9s cubic-bezier(.7,0,.2,1)}
#intro.out{transform:translateY(-102%)}
#intro .w{display:flex;font-family:var(--head);font-stretch:125%;font-weight:800;font-size:min(15vw,150px);line-height:1}
#intro .w i{font-style:normal;display:inline-block;opacity:0;transform:translateY(60%) scale(1.5);animation:roar .7s cubic-bezier(.2,.9,.2,1.2) forwards}
@keyframes roar{to{opacity:1;transform:none}}
#intro p{font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin:0;opacity:.8}
#intro .row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
/* share overlay */
#shareO{position:fixed;inset:0;z-index:70;background:rgba(10,14,32,.92);color:#F5F1E8;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px}
#shareO.open{display:flex}#shareO img{max-height:74vh;max-width:90vw;border-radius:12px}
#shareO p{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin:0}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}.ghost i{animation:none}#wipe.a{animation-duration:.01s}}

.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:8px}
.atile{display:block;text-align:start;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.atile:hover{transform:translateY(-6px)}
.atile i{display:block;aspect-ratio:4/5;background-size:700% 100%;background-repeat:no-repeat;border-radius:12px}
.atile span{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:7px 2px 4px}
.rtile{flex:none;width:clamp(130px,16vw,200px);aspect-ratio:4/5;background-repeat:no-repeat;border-radius:12px;scroll-snap-align:center}
@media (min-width:760px){#menu nav button{font-size:clamp(22px,4vw,50px)}}

.acb{position:absolute;right:-4%;bottom:1.5%;width:30%;aspect-ratio:1;border-radius:50%;background-size:700% 125%;background-position:0 40%;background-repeat:no-repeat;border:2px solid var(--bg);box-shadow:0 6px 16px rgba(10,14,32,.18);transition:opacity .4s,transform .4s;z-index:2}
.focus .acb{opacity:0;transform:scale(.6)}
#pairs{position:absolute;z-index:6;inset-inline-end:74px;top:50%;transform:translateY(-50%);display:none;flex-direction:column;gap:6px;width:min(96px,11vh)}
.focus #pairs{display:flex}
#pairs .lbl{margin:0 0 2px}
.ptile{display:block;text-align:start;transition:transform .35s}.ptile:hover{transform:scale(1.06)}
.ptile i{display:block;aspect-ratio:4/5;background-size:700% 100%;background-repeat:no-repeat;border-radius:10px}
.ptile span{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:4px 0 0;line-height:1.25}
@media (max-width:759px){#pairs{position:static;transform:none;width:auto;flex-direction:row;gap:8px;align-items:center;padding-top:10px}#pairs .lbl{margin:0 4px 0 0;max-width:64px}#pairs .ptile{width:52px;flex:none}#pairs .ptile span{display:none}}

.ghost{top:47%}.ghost .mono{display:block;height:min(74vh,96vw);aspect-ratio:147/149;background:var(--ink);opacity:.075;-webkit-mask:url(img/monogram-r.png) center/contain no-repeat;mask:url(img/monogram-r.png) center/contain no-repeat;transition:opacity .6s}.focus .ghost .mono{opacity:.05}
