:root{--blue:#0060b6;--pink:#ff00c8;--lime:#ccff00;--ink:#2b2340;--white:#fff;--violet:#7a5cff;--bg:var(--blue);
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#00478a}}
:root[data-theme="dark"]{--bg:#00478a}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background-color:#2b2340;color:var(--white);font:400 1.05rem/1.55 "Bricolage Grotesque","Cairo",system-ui,sans-serif;overflow-x:hidden}
h1,h2,h3{font-family:"Unbounded","Cairo","Arial Black",system-ui,sans-serif;font-weight:800;line-height:1.1;margin:0}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px;position:relative;z-index:1}
section,header{position:relative;overflow:hidden}
section{padding:80px 0}
h2{font-size:clamp(1.7rem,4.4vw,2.8rem);margin-bottom:28px}
/* background shapes */
.s{position:absolute;pointer-events:none;z-index:0}
.circle{border-radius:50%}
.ring{border-radius:50%;background:none!important;border:8px solid}
.tri{clip-path:polygon(50% 0,100% 100%,0 100%)}
.sq{transform:rotate(18deg)}
.sqo{background:none!important;border:8px solid;transform:rotate(18deg)}
.plus{clip-path:polygon(35% 0,65% 0,65% 35%,100% 35%,100% 65%,65% 65%,65% 100%,35% 100%,35% 65%,0 65%,0 35%,35% 35%)}
.zig{clip-path:polygon(0 50%,12% 0,25% 50%,37% 0,50% 50%,62% 0,75% 50%,87% 0,100% 50%,100% 100%,87% 50%,75% 100%,62% 50%,50% 100%,37% 50%,25% 100%,12% 50%,0 100%)}
.star{clip-path:polygon(49.96% 0.0%,39.53% 22.46%,17.39% 12.13%,23.58% 36.06%,0.0% 42.6%,19.93% 56.88%,6.02% 77.28%,30.36% 75.22%,32.57% 99.91%,49.96% 82.44%,67.26% 99.91%,69.55% 75.22%,93.89% 77.28%,79.98% 56.88%,99.92% 42.6%,76.34% 36.06%,82.53% 12.13%,60.39% 22.46%)}
.spark{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);background:var(--white)}
/* y2k window */
.win{background:var(--white);color:var(--ink);border:2px solid var(--ink);border-radius:18px;overflow:hidden}
.bar{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(90deg,var(--pink),var(--violet) 55%,var(--blue));color:var(--white);font-weight:800;font-size:.85rem;padding:6px 10px;border-bottom:2px solid var(--ink)}
.dots b{display:inline-grid;place-items:center;width:21px;height:21px;margin-left:5px;background:linear-gradient(#fff,#c9d2e8);color:var(--ink);border:1.5px solid var(--ink);border-radius:6px;font-size:.75rem;line-height:1}
.btn{display:inline-block;background:linear-gradient(#f6ffb0,var(--lime) 48%,#a9d800 52%,var(--lime));color:var(--ink);font-weight:800;text-decoration:none;padding:14px 30px;border:2px solid var(--ink);border-radius:999px;box-shadow:inset 0 3px 0 rgba(255,255,255,.75);transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
/* hero */
.hero{padding:0 0 70px;background-color:var(--bg);background-image:linear-gradient(rgba(255,255,255,.16) 2px,transparent 2px),linear-gradient(90deg,rgba(255,255,255,.16) 2px,transparent 2px);background-size:64px 64px}
.hero .top{display:grid;grid-template-columns:auto 1fr;gap:56px;align-items:center}
.card-area{display:flex;flex-direction:column;align-items:center;justify-self:center}
.strap{width:38px;height:90px;background:repeating-linear-gradient(135deg,var(--pink) 0 10px,var(--lime) 10px 16px);border:2px solid var(--ink);border-top:0}
.clip{width:30px;height:20px;background:var(--ink);border-radius:0 0 8px 8px;margin-top:-3px}
.id{width:min(340px,86vw);transform:rotate(-3deg);transform-origin:top center;margin-top:-6px;border-radius:26px;position:relative;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
@keyframes swing{from{transform:rotate(-14deg)}}
@keyframes sway{from{transform:rotate(-3deg)}to{transform:rotate(3.5deg)}}
.id.grabbing{cursor:grabbing}
.id img{-webkit-user-drag:none;user-drag:none}
.id::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.6) 50%,transparent 62%);transform:translateX(-130%);animation:shine 4.5s ease-in-out 1.6s infinite}
@keyframes shine{0%,55%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
.hero .spark{animation:twinkle 2.4s ease-in-out infinite}
.hero .spark:nth-of-type(even){animation-delay:-1.2s}
@keyframes twinkle{0%,100%{transform:scale(.55) rotate(0)}50%{transform:scale(1.1) rotate(45deg)}}
.slotrow{padding:10px 0 8px;background:var(--white)}
.slot{width:64px;height:12px;border-radius:99px;background:var(--blue);border:2px solid var(--ink);margin:0 auto}
.id .photo{padding:18px 20px 4px;text-align:center}
.face{position:relative;width:100%;aspect-ratio:1;border:2px solid var(--ink);border-radius:16px;overflow:hidden;margin:0 0 16px;background:var(--blue)}
.faceb{display:block;width:100%;height:100%}
.eyes{position:absolute;inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.pup{position:absolute;display:block;transform:translate(var(--px,0px),var(--py,0px));will-change:transform}
.id h1{font-size:1.7rem}
.role{font-weight:800;color:var(--pink);margin:6px 0 0}
.fields{padding:12px 20px 4px;margin:0}
.fields div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-top:2px dashed var(--ink)}
.fields dt{font-size:.8rem;font-weight:800;opacity:.65}
.fields dd{margin:0;font-weight:800}
.barcode{height:38px;margin:10px 20px 18px;background:repeating-linear-gradient(90deg,var(--ink) 0 3px,transparent 3px 6px,var(--ink) 6px 7px,transparent 7px 12px,var(--ink) 12px 16px,transparent 16px 19px)}
.intro h2{font-size:clamp(2rem,4.4vw,3.4rem);line-height:1.12;color:var(--lime);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;margin-bottom:0}
.intro p{max-width:40ch;font-size:1.2rem;margin:22px 0 28px}
/* work */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:34px}
.tile{transition:transform .2s}
.tile:hover{transform:rotate(-1.5deg) translateY(-4px)}
.tile .art{aspect-ratio:4/3;display:grid;place-items:center;font-size:3.4rem;font-weight:800;border-bottom:2px solid var(--ink)}
.tile .t{padding:16px 18px 20px}
.tile h3{font-size:1.05rem;margin-bottom:8px}
.tile p{margin:0;font-size:.95rem}
.a1{background:var(--pink);color:var(--lime)}.a2{background:var(--lime);color:var(--ink)}.a3{background:var(--ink);color:var(--pink)}
.a4{background:var(--blue);color:var(--lime)}.a5{background:var(--pink);color:var(--white)}.a6{background:var(--lime);color:var(--pink)}
/* brands */
.marq{background:var(--ink);padding:36px 0}
.view{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;width:max-content;animation:scroll 30s linear infinite}
.group{display:flex;align-items:center;gap:72px;padding-right:72px}
.group img{height:60px;width:auto;max-width:190px;object-fit:contain;flex:none}
.marq:hover .track{animation-play-state:paused}
@keyframes scroll{to{transform:translateX(-50%)}}
.brandwrap{margin-top:72px}
.sub{margin-top:90px}
.bh{font-size:clamp(1.3rem,3vw,1.8rem);margin-bottom:18px}
/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:24px}
@media (max-width:700px){.about{grid-template-columns:1fr}}
.about p{margin:0}
.about h3{font-size:1.15rem;margin-bottom:10px}
.about .full{grid-column:1/-1}
.fw{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.fw li{padding:12px 18px;border-radius:14px;font-weight:800}
.fw li{background:#2b2340;color:#fff}
.about [data-i="whop"]{text-align:start}
.pill{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pill span{border:2px solid var(--ink);border-radius:999px;padding:3px 12px;font-weight:800;font-size:.82rem;background:linear-gradient(#fff,#d9e2ff)}
/* contact */
.hi{display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:center;padding:28px}
.hi h2{margin-bottom:14px}
.hi p{margin:0 0 24px;max-width:36ch}
/* ladybug */
@property --w{syntax:"<number>";inherits:true;initial-value:1}
.contact{padding-bottom:200px;background:var(--bg)}
.bugw{position:absolute;z-index:3;left:0;top:0;width:130px;height:167px;pointer-events:none;visibility:hidden;--w:1;will-change:transform}
.bugw.on{visibility:visible}
.bugi{position:relative;width:100%;height:100%;animation:wob .34s ease-in-out infinite alternate}
.bugi img{position:relative;display:block;width:100%;height:100%}
.legs{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.leg line{stroke:var(--ink);stroke-width:5;stroke-linecap:round}
.leg.a{animation:stepA .34s ease-in-out infinite alternate}
.leg.b{animation:stepA .34s ease-in-out infinite alternate-reverse}
@keyframes stepA{from{transform:rotate(calc(var(--w)*-18deg))}to{transform:rotate(calc(var(--w)*18deg))}}
@keyframes wob{from{transform:translateY(0) rotate(calc(var(--w)*-3deg))}to{transform:translateY(calc(var(--w)*-3px)) rotate(calc(var(--w)*3deg))}}
/* project popup */
.tilebtn{display:block;width:100%;text-align:start;cursor:pointer}
.cov{position:relative;overflow:hidden;background:var(--ink)}
.cov img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%;transition:transform .3s}
.tilebtn:hover .cov img{transform:scale(1.05)}
.vp{position:absolute;bottom:10px;inset-inline-start:10px;font:800 .75rem/1 "Bricolage Grotesque","Cairo",system-ui,sans-serif;color:var(--ink);padding:6px 12px;border:2px solid var(--ink);border-radius:999px;background:linear-gradient(#f6ffb0,var(--lime) 48%,#a9d800 52%,var(--lime))}
.chip{display:inline-block;margin-bottom:8px;padding:2px 10px;border-radius:999px;background:var(--pink);color:var(--ink);font-weight:800;font-size:.72rem}
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(43,35,64,.92)}
.modal[hidden]{display:none}
.mwin{width:min(920px,100%);max-height:100%;display:flex;flex-direction:column;animation:mpop .22s ease-out}
@keyframes mpop{from{transform:scale(.94);opacity:0}}
.mwin .bar{flex:none}
.mx{width:24px;height:24px;display:grid;place-items:center;padding:0;cursor:pointer;background:linear-gradient(#fff,#c9d2e8);color:var(--ink);border:1.5px solid var(--ink);border-radius:6px;font:800 .9rem/1 system-ui,sans-serif}
.stage{position:relative;flex:none;height:min(54vh,500px);background:var(--ink);direction:ltr;touch-action:pan-y;overflow:hidden}
.stage>img,.stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--ink);animation:sfade .25s ease-out}
@keyframes sfade{from{opacity:0}}
.scrollw{position:absolute;inset:0;overflow-y:auto;background:var(--ink);display:flex;align-items:flex-start;justify-content:center;animation:sfade .25s ease-out}
.scrollw img{width:min(100%,520px);height:auto;display:block;flex:none}

.nav{position:absolute;top:50%;z-index:2;width:44px;height:44px;margin-top:-22px;display:grid;place-items:center;padding:0 0 3px;cursor:pointer;border:2px solid var(--ink);border-radius:50%;color:var(--ink);font:800 1.7rem/1 system-ui,sans-serif;background:linear-gradient(#f6ffb0,var(--lime) 48%,#a9d800 52%,var(--lime));box-shadow:inset 0 3px 0 rgba(255,255,255,.75)}
.prev{left:10px}.next{right:10px}
.thumbs{flex:none;display:flex;gap:8px;padding:10px 12px;overflow-x:auto;direction:ltr;background:#e9f0ff;border-top:2px solid var(--ink)}
.th{position:relative;flex:none;width:64px;height:48px;padding:0;overflow:hidden;cursor:pointer;border:2px solid var(--ink);border-radius:8px;background:var(--ink);opacity:.6}
.th img{width:100%;height:100%;object-fit:cover;display:block}
.th[aria-current="true"]{opacity:1;border-color:var(--pink);box-shadow:0 0 0 2px var(--pink)}
.th i{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-style:normal;font-size:1rem;background:rgba(43,35,64,.45)}
.minfo{flex:1 1 auto;overflow:auto;padding:14px 18px 18px;border-top:2px solid var(--ink)}
.minfo h3{font-size:1.15rem;margin-bottom:6px}
.minfo p{margin:0;max-width:62ch}
.mcount{float:inline-end;margin-inline-start:12px;font-weight:800;font-size:.85rem;color:var(--pink)}
@media (max-width:560px){.stage{height:46vh}.nav{width:38px;height:38px;margin-top:-19px}}
@media (prefers-reduced-motion:reduce){.mwin,.stage>img,.stage>video{animation:none}.cov img{transition:none}}
/* language switcher */
.lang{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);inset-inline-end:12px;z-index:60;display:flex;align-items:center;gap:4px;padding:4px;background:linear-gradient(#fff,#cdd6ee);border:2px solid var(--ink);border-radius:999px;box-shadow:inset 0 3px 0 rgba(255,255,255,.8)}
.lang .gl{width:18px;height:18px;margin:0 6px;background:var(--pink);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.lang button{font:800 .9rem/1 "Bricolage Grotesque","Cairo",system-ui,sans-serif;color:var(--ink);background:transparent;border:2px solid transparent;border-radius:999px;padding:8px 16px;cursor:pointer}
.lang button[aria-pressed="true"]{background:linear-gradient(#f6ffb0,var(--lime) 48%,#a9d800 52%,var(--lime));border-color:var(--ink);box-shadow:inset 0 3px 0 rgba(255,255,255,.75)}
.lang button:not([aria-pressed="true"]):hover{background:rgba(255,255,255,.7)}
/* arabic / rtl */
html[dir="rtl"] body{line-height:1.75}
html[dir="rtl"] h1,html[dir="rtl"] h2,html[dir="rtl"] h3{line-height:1.4;font-weight:900;letter-spacing:0}
html[dir="rtl"] .intro h2{-webkit-text-stroke-width:1.5px}
.bar,.marq{direction:ltr}
@media (max-width:520px){.lang .gl{display:none}.lang button{padding:7px 12px}}
.fields dd{text-align:end}
footer{padding:36px 20px calc(44px + env(safe-area-inset-bottom,0px));text-align:center;font-size:.95rem;font-weight:800;background:var(--bg);color:var(--white)}
@media (max-width:820px){.hero .top{grid-template-columns:1fr;gap:36px;text-align:center}.intro p{margin-inline:auto}.hi{grid-template-columns:1fr;text-align:center}.hi p{margin-inline:auto}.hi{padding-bottom:150px}}
@media (prefers-reduced-motion:reduce){.bugi,.leg{animation:none}.track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}.group+.group{display:none}.view{-webkit-mask-image:none;mask-image:none}.id,.id::after,.hero .spark{animation:none}.btn,.tile{transition:none}}
