/* fullomnia — shared tokens. Spring easings are sampled from the same spring solver Framer uses (see js/00-motion.js). */
:root{
  --s35: linear(0, 0.0315, 0.1115, 0.2211, 0.345, 0.4717, 0.5928, 0.7027, 0.7982, 0.8778, 0.9413, 0.9898, 1.0247, 1.0479, 1.0615, 1.0674, 1.0676, 1.0637, 1.0571, 1.0491, 1.0405, 1.0319, 1.024, 1.017, 1.011, 1.0061, 1.0023, 0.9995, 0.9975, 0.9962, 0.9956, 0.9954, 0.9955, 0.9959, 0.9964, 0.9969, 0.9975, 0.9981, 0.9986, 1); /* 390ms */
  --s20: linear(0, 0.0224, 0.0794, 0.1581, 0.2486, 0.3435, 0.4375, 0.5269, 0.6093, 0.6833, 0.7484, 0.8044, 0.8518, 0.8911, 0.9231, 0.9487, 0.9688, 0.9841, 0.9954, 1.0036, 1.0091, 1.0125, 1.0144, 1.0151, 1.015, 1.0142, 1.0131, 1.0118, 1.0104, 1.0089, 1.0076, 1.0063, 1.0051, 1.0041, 1.0032, 1.0024, 1.0018, 1.0013, 1.0009, 1.0006, 1); /* 400ms */
  --k210: linear(0, 0.0345, 0.114, 0.2132, 0.317, 0.4168, 0.5082, 0.5892, 0.6594, 0.7193, 0.7698, 0.8119, 0.8468, 0.8756, 0.8992, 0.9185, 0.9342, 0.9469, 0.9572, 0.9656, 0.9723, 0.9778, 0.9821, 0.9857, 0.9885, 0.9908, 0.9926, 0.9941, 0.9952, 0.9962, 0.9969, 0.9976, 0.998, 0.9984, 0.9987, 0.999, 1); /* 720ms */
  --t45: cubic-bezier(.82,.11,.37,.82);
  --t30: cubic-bezier(.68,0,.16,.97);
  --nav: cubic-bezier(.96,-.02,.38,1.01);
}
/* fullomnia — page transition + grain.
   Framer wraps every navigation in a View Transition "wipe" (exit: lift 30% + fade to .1 + wipe from the bottom, 0.55 s;
   enter: fade in + wipe from the bottom after 0.55 s; curve .96,-.02,.38,1.01). Values below are the CSS Framer injects;
   the static site gets the same effect from a cross-document view transition (both pages load this file). */
@view-transition{navigation:auto}
@media (prefers-reduced-motion){
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}
::view-transition-old(*),::view-transition-new(*){mix-blend-mode:normal}
::view-transition-old(*),::view-transition-new(*){backface-visibility:hidden}
@property --view-transition-wipe-offset{syntax:'<number>';initial-value:0;inherits:false}
@keyframes view-transition-exit{
  0%{opacity:1;transform:translate(0px,0px) scale(1) rotateX(0deg) rotateY(0deg) rotateZ(0deg);--view-transition-wipe-offset:0}
  100%{opacity:.1;transform:translate(0px,-30%) scale(1) rotateX(0deg) rotateY(0deg) rotateZ(0deg);--view-transition-wipe-offset:1}
}
::view-transition-old(root){
  animation-name:view-transition-exit;animation-duration:.55s;animation-delay:0s;
  animation-timing-function:cubic-bezier(.96,-.02,.38,1.01);animation-fill-mode:both;
  mask-image:linear-gradient(360deg,transparent calc(calc(0% - 1%) + calc(calc(100% + 1%) * var(--view-transition-wipe-offset))),black calc(calc(100% + 1%) * var(--view-transition-wipe-offset)));
  -webkit-mask-image:linear-gradient(360deg,transparent calc(calc(0% - 1%) + calc(calc(100% + 1%) * var(--view-transition-wipe-offset))),black calc(calc(100% + 1%) * var(--view-transition-wipe-offset)));
}
@keyframes view-transition-enter{
  0%{opacity:0;transform:translate(0%,0%) scale(1) rotateX(0deg) rotateY(0deg) rotateZ(0deg);--view-transition-wipe-offset:0}
  100%{opacity:1;transform:translate(0px,0px) scale(1) rotateX(0deg) rotateY(0deg) rotateZ(0deg);--view-transition-wipe-offset:1}
}
::view-transition-new(root){
  animation-name:view-transition-enter;animation-duration:.55s;animation-delay:.55s;
  animation-timing-function:cubic-bezier(.96,-.02,.38,1.01);animation-fill-mode:both;
  mask-image:linear-gradient(360deg,black calc(calc(0% - 1%) + calc(calc(100% + 1%) * var(--view-transition-wipe-offset))),transparent calc(calc(100% + 1%) * var(--view-transition-wipe-offset)));
  -webkit-mask-image:linear-gradient(360deg,black calc(calc(0% - 1%) + calc(calc(100% + 1%) * var(--view-transition-wipe-offset))),transparent calc(calc(100% + 1%) * var(--view-transition-wipe-offset)));
}

/* Grain code component: the 400% noise layer jumps through 10 offsets in 8 s, every segment eased with steps(10, start) */
div[style*="rR6HYXBrMmX4cRpXfXUOvpvpB0"]{animation:fx-grain 8s steps(10,jump-start) infinite}
@keyframes fx-grain{
  0%{transform:translate(0%,0%)}
  11.1111%{transform:translate(-5%,-10%)}
  22.2222%{transform:translate(-15%,5%)}
  33.3333%{transform:translate(7%,-25%)}
  44.4444%{transform:translate(-5%,25%)}
  55.5556%{transform:translate(-15%,10%)}
  66.6667%{transform:translate(15%,0%)}
  77.7778%{transform:translate(0%,15%)}
  88.8889%{transform:translate(3%,35%)}
  100%{transform:translate(-10%,10%)}
}
/* fullomnia — navbar (js/30-nav.js). The open-only top links added by tools/patches/30-nav.py exist in Framer only
   in the open variants: never let them take space while a header copy is in a closed variant. */
.framer-Ig46B:is(.framer-v-v89dtt,.framer-v-14j3axz,.framer-v-12w42s8) [data-nav-open-only]{display:none!important}
/* fullomnia — forms: submit-button state variants (spinner, state transitions) and the /projects filter.
   The variant layout rules (framer-v-*) are already in Framer's SSR CSS; this only adds what Framer set inline. */

/* Loading spinner: conic arc masked by a ring (self-hosted replacement for Framer's 404 mask pGiXYozQ3mE4cilNOItfe2L2fUA.svg) */
.framer-4J9XK .framer-6agcka,.framer-4J9XK .framer-18aqab3,.framer-iwDdg .framer-hw7rfr{
  -webkit-mask-image:url(../img/spinner-ring.svg);mask-image:url(../img/spinner-ring.svg);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:cover;mask-size:cover}
.framer-4J9XK .framer-18aqab3,.framer-iwDdg .framer-hw7rfr{
  background:conic-gradient(from 0deg at 50% 50%,rgba(255,255,255,0) 7.208614864864882deg,#fff 342deg);
  animation:fx-form-spin 1s linear infinite}  /* __framer__loop rotate 0 -> 360, tween linear, repeat loop */
.framer-iwDdg .framer-hw7rfr{animation-duration:.6s}
.framer-4J9XK .framer-1r4sjfr,.framer-iwDdg .framer-13n8hk4{background-color:#fff;border-radius:1px;transform:translateX(-50%)}
@keyframes fx-form-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* state variants other than the base one: background/opacity follow the variant spring (bounce .35, 390 ms);
   the base (hover) variant keeps the transitions declared by the hover module */
.framer-4J9XK:not(.framer-v-4lucl9),.framer-iwDdg:not(.framer-v-1bcofgr){transition:background-color 390ms var(--s35),opacity 390ms var(--s35)}
@supports not (transition-timing-function:linear(0,1)){
  .framer-4J9XK:not(.framer-v-4lucl9),.framer-iwDdg:not(.framer-v-1bcofgr){transition:background-color 390ms cubic-bezier(.4,1.35,.05,1),opacity 390ms cubic-bezier(.4,1.35,.05,1)}
}

/* /projects: cards filtered out by search/category (Framer unmounts them) */
.framer-1cc0n5q[hidden]{display:none!important}
/* "Stack" icon of the empty state (component CSS that Framer only injects when it renders) */
.framer-qlGUT{aspect-ratio:1;display:block;width:24px}
/* fullomnia — transitions for the hover / tap variants set by js/60-hover.js (spec hover-interactions §0.3).
   Same timing as each component's Framer transition: S35/S20 springs (linear() tokens from 00-core), T45/T50 tweens.
   Elements moved by the JS FLIP (rolling labels, arrows, team name, banner text) get no transform transition. */
:root{--hv-s35:var(--s35);--hv-s20:var(--s20)}
/* without linear() the whole transition would be dropped: least-squares cubic-bezier fits of the two springs */
@supports not (transition-timing-function:linear(0, 1)){:root{--hv-s35:cubic-bezier(.4,1.35,.05,1);--hv-s20:cubic-bezier(.35,.75,.05,1.1)}}

/* §1-§4 buttons (S35). Submit buttons also animate their form-state variants with the same spring */
.framer-JO4Ez,.framer-AqS0B{transition:background-color 390ms var(--hv-s35)}
.framer-4J9XK,.framer-iwDdg{transition:background-color 390ms var(--hv-s35),opacity 390ms var(--hv-s35)}
.framer-JO4Ez .framer-1mhfyus,.framer-JO4Ez .framer-meoha7,
.framer-4J9XK .framer-o38np2,.framer-4J9XK .framer-1zgpu1,
.framer-iwDdg .framer-1954osx,.framer-iwDdg .framer-1s1iawp,
.framer-AqS0B .framer-xul9s5,.framer-AqS0B .framer-ezhg3q,.framer-AqS0B .framer-luqt15{transition:opacity 390ms var(--hv-s35)}
.framer-iwDdg .framer-1n90y1x{transition:opacity 390ms var(--hv-s35),background-color 390ms var(--hv-s35)}
.framer-AqS0B .framer-15hb7ze,.framer-iwDdg .framer-r4ytk6{transition:width 390ms var(--hv-s35),height 390ms var(--hv-s35),right 390ms var(--hv-s35),background-color 390ms var(--hv-s35),opacity 390ms var(--hv-s35)}

/* §6 contact card (S20) */
.framer-vAymd .framer-gcir4z,.framer-vAymd .framer-f4gtfg{transition:border-radius 400ms var(--hv-s20)}

/* §8 project card (T45); the root is left to the appear module */
.framer-CESog .framer-g366ra,.framer-CESog .framer-1wwmucy,.framer-CESog .framer-ylz3x1{transition:background-color 450ms var(--t45)}
.framer-CESog .framer-ybsvxe{transition:top 450ms var(--t45),right 450ms var(--t45),bottom 450ms var(--t45),left 450ms var(--t45)}
.framer-CESog .framer-16bbbzt{transition:opacity 450ms var(--t45)}
.framer-CESog .framer-jh1lcx{transition:filter 450ms var(--t45),-webkit-filter 450ms var(--t45),transform 450ms var(--t45)}
.framer-CESog .framer-jem6dr{transition:transform 450ms var(--t45)}

/* §9 banner (T50, same curve as T45) */
.framer-EPooH{transition:box-shadow 500ms var(--t45)}
.framer-EPooH .framer-mbu10z{transition:opacity 500ms var(--t45)}
.framer-EPooH .framer-1lfeovs{transition:filter 500ms var(--t45),-webkit-filter 500ms var(--t45),transform 500ms var(--t45)}

/* §10 team card (T45) */
.framer-4Hxh5 .framer-1uuohjq-container{transition:transform 450ms var(--t45)}
.framer-4Hxh5 .framer-1cxinh3{transition:opacity 450ms var(--t45)}
.framer-4Hxh5 .framer-1q2o2ve{transition:filter 450ms var(--t45),-webkit-filter 450ms var(--t45),opacity 450ms var(--t45),transform 450ms var(--t45)}

/* §11 counter card, §12 testimonial (T45): gap 4px -> 0 (margin on browsers using Framer's no-flex-gap fallback) */
.framer-R2FNl.framer-1j1zu9p,.framer-k80mU.framer-1xa06lp{transition:gap 450ms var(--t45)}
.framer-R2FNl .framer-lto9ai,.framer-R2FNl .framer-1co0dc5,
.framer-k80mU .framer-1nedhuv,.framer-k80mU .framer-1flz52s{transition:border-radius 450ms var(--t45),margin 450ms var(--t45)}
.framer-k80mU .framer-jhnbua-container{transition:transform 450ms var(--t45)}

/* §13 email (S20) */
.framer-XRBqV .framer-149v3n5-container{transition:transform 400ms var(--hv-s20)}
.framer-XRBqV .framer-1wpm5k9{transition:opacity 400ms var(--hv-s20)}
/* fullomnia — client edits of Nov 2026 to Home, Studio ("Agenzia") and the project detail pages (body[data-page]).
   Content removals (date, "01", the 9/10 stat, empty logo slots) are made in source/html; this file only holds the
   visual/layout side. Nothing here applies to /projects, /contact, legal pages or the 404. */

/* Section-title marker (section tag lvUtz: black dot mF96D + label): only the dot stays, its two white bars (the "+")
   are hidden. They are absolutely positioned inside the fixed 18px dot, so dot size and label position do not move.
   Every other "+" (menu, photo card corner, team cards, review cards) is a different instance and keeps its bars. */
:is(body[data-page=home],body[data-page=studio],body[data-page=project]) .framer-lvUtz .framer-mF96D>:is(.framer-1f2k6fv,.framer-19zm8hd){display:none}

/* Home "Risultati." header (grid of 4 columns: title spans 2). The description used to sit in column 3 only, so it
   got squeezed to ~145px on tablets. It now spans columns 3-4 and keeps the original measure on wide screens
   (25% of the row - 43px, i.e. 50% of its box - 22px) with a 300px floor; it wraps inside its own column.
   Phone: title and description side by side while the description still gets 220px, otherwise stacked as before. */
body[data-page=home] .framer-1hxsd0l>.framer-bkkbwn{grid-column:span 2;justify-content:flex-start}
body[data-page=home] .framer-1hxsd0l .framer-1xp3zqa{max-width:max(calc(50% - 22px),300px)}
@media (max-width:809.98px){
  body[data-page=home] .framer-1hxsd0l{flex-flow:row wrap;gap:16px 40px}
  body[data-page=home] .framer-1hxsd0l>.framer-7l5kym{flex:none;width:auto}
  body[data-page=home] .framer-1hxsd0l>.framer-bkkbwn{flex:1 1 220px;width:auto;align-self:flex-end}
  body[data-page=home] .framer-1hxsd0l .framer-1xp3zqa{max-width:none}
}

/* Home photo card (Banner EPooH, "Your digital journey begins…"): static. The photo never blurs or zooms and the
   text + "Let's talk" button stay visible, laid out as Framer shows them on hover (Desktop variant) or after a tap
   (Phone -> Phone Click), so hovering or tapping changes nothing; the button still links to /contact.
   js/60-hover.js keeps toggling the variant and writing its inline values: these rules make that a no-op (will-change
   too: the "will-change: transform" it leaves on photo and text would promote them to their own layer and re-snap the
   text glyphs by ~0.5px on the first hover). */
body[data-page=home] .framer-EPooH{box-shadow:none!important}
body[data-page=home] .framer-EPooH .framer-1lfeovs{filter:none!important;-webkit-filter:none!important;transform:none!important;will-change:auto!important}
body[data-page=home] .framer-EPooH .framer-mbu10z{opacity:1!important;will-change:auto!important}
body[data-page=home] .framer-EPooH.framer-v-mjktsb .framer-mbu10z{padding:0 0 30px 30px}
body[data-page=home] .framer-EPooH:is(.framer-v-1p0w6q,.framer-v-npk9m3) .framer-mbu10z{flex:1 0 0;width:1px;padding:0 0 30px}
body[data-page=home] .framer-EPooH:is(.framer-v-1p0w6q,.framer-v-npk9m3) .framer-j3uvcp{max-width:320px}

/* Home "50+ / Aziende sarde soddisfatte" card (R2FNl): without the "01" every text is left-aligned on the same left
   inset as the number (30px Desktop, 24px Tablet/Phone; the Tablet bottom box had 22px). Sizes and vertical
   paddings unchanged. */
body[data-page=home] .framer-R2FNl .framer-1p9xpng{justify-content:flex-start}
body[data-page=home] .framer-R2FNl .framer-14rc0hg p.framer-text{text-align:left}
body[data-page=home] .framer-R2FNl.framer-v-fkx8sy .framer-1co0dc5{padding-left:24px;padding-right:24px}

/* Stats (component IVCHB, Home "Numbers" + Studio "Numbers"): three items left after removing "9/10" -> three equal
   columns across the full width (Desktop, Tablet and wide phones, Framer's gaps); narrow phones, where three
   columns would squeeze the 40px numbers, stack them in one column (rows sized to their content, so the 40px gap
   is the only space between them). */
body[data-page=home] .framer-1i2okjw,body[data-page=studio] .framer-t8q1xd{grid-template-columns:repeat(3,minmax(50px,1fr))}
@media (max-width:539.98px){
  body[data-page=home] .framer-1i2okjw,body[data-page=studio] .framer-t8q1xd{grid-template:none/minmax(50px,1fr);grid-auto-rows:auto}
}
/* fullomnia — /projects: 6 featured cards, the "Scopri il resto dei lavori ↓" toggle and the text archive
   (markup: tools/patches/71-projects.py, behaviour: js/71-projects.js). The open state is the button's aria-expanded.
   Typography follows the page: Inter 500, letter-spacing -.04em, text token #0a0a0a; names sized like the card titles
   (18/15/15), Settore/Anno like the detail-page info table (15/14/13) at the .6 opacity of the intro text, header
   labels like the table labels (12/11 at .5), rows split by the table's 1px #e2e2e2 rule. */

/* cards after the 6th (data-fx-more): hidden unless the search / category filter is active (data-fx-filtered,
   set by js/50-forms.js), which shows every match; the toggle + archive step aside meanwhile */
body[data-page=projects] .framer-1cfsi94:not([data-fx-filtered]) > [data-fx-more]{display:none}
body[data-page=projects] .framer-1cfsi94[data-fx-filtered] ~ .fx-more{display:none}

body[data-page=projects] .fx-more{
  --fx-ink:var(--token-88d5059b-bc5d-4e0a-ad79-b21e9a2c4948,#0a0a0a);
  box-sizing:border-box;width:100%;display:flex;flex-direction:column;align-items:center;
  font-family:"Inter","Inter Placeholder",sans-serif;font-weight:500;letter-spacing:-.04em;color:var(--fx-ink)}
body[data-page=projects] .fx-more *{box-sizing:border-box}

/* toggle: plain text + arrow, no button chrome */
body[data-page=projects] .fx-more-btn{
  appearance:none;-webkit-appearance:none;background:none;border:0;border-radius:6px;box-shadow:none;margin:0;padding:6px 4px;
  display:inline-flex;align-items:center;gap:.3em;cursor:pointer;
  font:inherit;font-size:18px;line-height:1.2;letter-spacing:inherit;color:inherit;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:opacity .25s ease}
body[data-page=projects] .fx-more-arrow{display:inline-block;transition:transform .3s cubic-bezier(.4,0,.2,1)}
body[data-page=projects] .fx-more-btn[aria-expanded=true] .fx-more-arrow{transform:rotate(180deg)}
@media (hover:hover){
  body[data-page=projects] .fx-more-btn:hover{opacity:.6}
  body[data-page=projects] .fx-more-btn:hover .fx-more-arrow{transform:translateY(3px)}
  body[data-page=projects] .fx-more-btn[aria-expanded=true]:hover .fx-more-arrow{transform:translateY(-3px) rotate(180deg)}
}
body[data-page=projects] .fx-more-btn:focus{outline:none}
body[data-page=projects] .fx-more-btn:focus-visible{outline:2px solid var(--fx-ink);outline-offset:2px}

/* archive: collapses to 0 height (0fr row) and fades; hidden from tab order / screen readers while closed.
   The clip box overhangs by 6px each side so row focus rings are not cut (the section's side padding is wider). */
body[data-page=projects] .fx-archive{
  width:100%;display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;
  transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1),opacity .25s ease,visibility 0s linear .45s}
body[data-page=projects] .fx-more-btn[aria-expanded=true] + .fx-archive{
  grid-template-rows:1fr;opacity:1;visibility:visible;
  transition:grid-template-rows .45s cubic-bezier(.4,0,.2,1),opacity .35s ease .1s,visibility 0s}
body[data-page=projects] .fx-archive-clip{min-height:0;overflow:hidden;margin:0 -6px;padding:0 6px}

/* three columns; the Settore column starts where the second card column does (cards: 2 x (50% - 2px), gap 4px) */
body[data-page=projects] .fx-archive-head,body[data-page=projects] .fx-archive-row{
  display:grid;grid-template-columns:calc(50% - 2px) minmax(0,1fr) auto;column-gap:4px;align-items:baseline}
body[data-page=projects] .fx-archive-head{margin-top:40px;padding-bottom:12px;font-size:12px;line-height:1.3;opacity:.5}
body[data-page=projects] .fx-archive-list{list-style:none;margin:0;padding:0;border-bottom:1px solid #e2e2e2}
body[data-page=projects] .fx-archive-list > li{margin:0;padding:0;border-top:1px solid #e2e2e2}  /* rules stay put when a row dims */
body[data-page=projects] .fx-archive-row{
  padding:16px 0;border-radius:4px;color:inherit;text-decoration:none;transition:opacity .25s ease}
body[data-page=projects] .fx-archive-head > :last-child,body[data-page=projects] .fx-archive-year{text-align:right;padding-left:24px}
body[data-page=projects] .fx-archive-name{font-size:18px;line-height:1.2;padding-right:24px}
body[data-page=projects] .fx-archive-sector,body[data-page=projects] .fx-archive-year{font-size:15px;line-height:1.4;opacity:.6}
body[data-page=projects] .fx-archive-row > span{min-width:0;overflow-wrap:anywhere}
@media (hover:hover){
  body[data-page=projects] .fx-archive-row:hover{opacity:.55}
}
body[data-page=projects] .fx-archive-row:focus{outline:none}
body[data-page=projects] .fx-archive-row:focus-visible{outline:2px solid var(--fx-ink);outline-offset:2px}

/* Tablet: same columns, smaller type and gaps */
@media (min-width:810px) and (max-width:1199.98px){
  body[data-page=projects] .fx-more-btn,body[data-page=projects] .fx-archive-name{font-size:15px}
  body[data-page=projects] .fx-archive-sector,body[data-page=projects] .fx-archive-year{font-size:14px}
  body[data-page=projects] .fx-archive-head{font-size:11px}
  body[data-page=projects] .fx-archive-row{padding:14px 0}
  body[data-page=projects] .fx-archive-name{padding-right:16px}
  body[data-page=projects] .fx-archive-head > :last-child,body[data-page=projects] .fx-archive-year{padding-left:16px}
}
/* Phone: one column of cards (container gap 4px) -> extra air above the toggle; each project on two lines:
   name, then Settore (left) and Anno (right) */
@media (max-width:809.98px){
  body[data-page=projects] .fx-more{margin-top:28px}
  body[data-page=projects] .fx-more-btn,body[data-page=projects] .fx-archive-name{font-size:15px}
  body[data-page=projects] .fx-archive-head{display:none}
  body[data-page=projects] .fx-archive-list{margin-top:28px}
  body[data-page=projects] .fx-archive-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px;padding:14px 0}
  body[data-page=projects] .fx-archive-name{grid-column:1 / -1;padding-right:0}
  body[data-page=projects] .fx-archive-sector,body[data-page=projects] .fx-archive-year{font-size:13px}
  body[data-page=projects] .fx-archive-year{padding-left:16px}
}

@media (prefers-reduced-motion:reduce){
  body[data-page=projects] .fx-more-btn,body[data-page=projects] .fx-more-arrow,
  body[data-page=projects] .fx-archive,body[data-page=projects] .fx-more-btn[aria-expanded=true] + .fx-archive,
  body[data-page=projects] .fx-archive-row{transition:none}
  body[data-page=projects] .fx-more-btn:hover .fx-more-arrow{transform:none}
  body[data-page=projects] .fx-more-btn[aria-expanded=true]:hover .fx-more-arrow{transform:rotate(180deg)}
}
