html { scroll-behavior: smooth; }
/* A sampled sinusoidal orbit with linear progression avoids stops at quarter turns. */
@keyframes gentleFloat {
  0% { transform: translate(0px, 0px) rotate(0deg); }
  0.833333% { transform: translate(0.26168px, -0.013705px) rotate(0.052336deg); }
  1.666667% { transform: translate(0.522642px, -0.054781px) rotate(0.104528deg); }
  2.5% { transform: translate(0.782172px, -0.123117px) rotate(0.156434deg); }
  3.333333% { transform: translate(1.039558px, -0.218524px) rotate(0.207912deg); }
  4.166667% { transform: translate(1.294095px, -0.340742px) rotate(0.258819deg); }
  5% { transform: translate(1.545085px, -0.489435px) rotate(0.309017deg); }
  5.833333% { transform: translate(1.79184px, -0.664196px) rotate(0.358368deg); }
  6.666667% { transform: translate(2.033683px, -0.864545px) rotate(0.406737deg); }
  7.5% { transform: translate(2.269952px, -1.089935px) rotate(0.45399deg); }
  8.333333% { transform: translate(2.5px, -1.339746px) rotate(0.5deg); }
  9.166667% { transform: translate(2.723195px, -1.613294px) rotate(0.544639deg); }
  10% { transform: translate(2.938926px, -1.90983px) rotate(0.587785deg); }
  10.833333% { transform: translate(3.146602px, -2.22854px) rotate(0.62932deg); }
  11.666667% { transform: translate(3.345653px, -2.568552px) rotate(0.669131deg); }
  12.5% { transform: translate(3.535534px, -2.928932px) rotate(0.707107deg); }
  13.333333% { transform: translate(3.715724px, -3.308694px) rotate(0.743145deg); }
  14.166667% { transform: translate(3.88573px, -3.706796px) rotate(0.777146deg); }
  15% { transform: translate(4.045085px, -4.122147px) rotate(0.809017deg); }
  15.833333% { transform: translate(4.193353px, -4.55361px) rotate(0.838671deg); }
  16.666667% { transform: translate(4.330127px, -5px) rotate(0.866025deg); }
  17.5% { transform: translate(4.455033px, -5.460095px) rotate(0.891007deg); }
  18.333333% { transform: translate(4.567727px, -5.932634px) rotate(0.913545deg); }
  19.166667% { transform: translate(4.667902px, -6.416321px) rotate(0.93358deg); }
  20% { transform: translate(4.755283px, -6.90983px) rotate(0.951057deg); }
  20.833333% { transform: translate(4.829629px, -7.41181px) rotate(0.965926deg); }
  21.666667% { transform: translate(4.890738px, -7.920883px) rotate(0.978148deg); }
  22.5% { transform: translate(4.938442px, -8.435655px) rotate(0.987688deg); }
  23.333333% { transform: translate(4.972609px, -8.954715px) rotate(0.994522deg); }
  24.166667% { transform: translate(4.993148px, -9.47664px) rotate(0.99863deg); }
  25% { transform: translate(5px, -10px) rotate(1deg); }
  25.833333% { transform: translate(4.993148px, -10.52336px) rotate(0.99863deg); }
  26.666667% { transform: translate(4.972609px, -11.045285px) rotate(0.994522deg); }
  27.5% { transform: translate(4.938442px, -11.564345px) rotate(0.987688deg); }
  28.333333% { transform: translate(4.890738px, -12.079117px) rotate(0.978148deg); }
  29.166667% { transform: translate(4.829629px, -12.58819px) rotate(0.965926deg); }
  30% { transform: translate(4.755283px, -13.09017px) rotate(0.951057deg); }
  30.833333% { transform: translate(4.667902px, -13.583679px) rotate(0.93358deg); }
  31.666667% { transform: translate(4.567727px, -14.067366px) rotate(0.913545deg); }
  32.5% { transform: translate(4.455033px, -14.539905px) rotate(0.891007deg); }
  33.333333% { transform: translate(4.330127px, -15px) rotate(0.866025deg); }
  34.166667% { transform: translate(4.193353px, -15.44639px) rotate(0.838671deg); }
  35% { transform: translate(4.045085px, -15.877853px) rotate(0.809017deg); }
  35.833333% { transform: translate(3.88573px, -16.293204px) rotate(0.777146deg); }
  36.666667% { transform: translate(3.715724px, -16.691306px) rotate(0.743145deg); }
  37.5% { transform: translate(3.535534px, -17.071068px) rotate(0.707107deg); }
  38.333333% { transform: translate(3.345653px, -17.431448px) rotate(0.669131deg); }
  39.166667% { transform: translate(3.146602px, -17.77146px) rotate(0.62932deg); }
  40% { transform: translate(2.938926px, -18.09017px) rotate(0.587785deg); }
  40.833333% { transform: translate(2.723195px, -18.386706px) rotate(0.544639deg); }
  41.666667% { transform: translate(2.5px, -18.660254px) rotate(0.5deg); }
  42.5% { transform: translate(2.269952px, -18.910065px) rotate(0.45399deg); }
  43.333333% { transform: translate(2.033683px, -19.135455px) rotate(0.406737deg); }
  44.166667% { transform: translate(1.79184px, -19.335804px) rotate(0.358368deg); }
  45% { transform: translate(1.545085px, -19.510565px) rotate(0.309017deg); }
  45.833333% { transform: translate(1.294095px, -19.659258px) rotate(0.258819deg); }
  46.666667% { transform: translate(1.039558px, -19.781476px) rotate(0.207912deg); }
  47.5% { transform: translate(0.782172px, -19.876883px) rotate(0.156434deg); }
  48.333333% { transform: translate(0.522642px, -19.945219px) rotate(0.104528deg); }
  49.166667% { transform: translate(0.26168px, -19.986295px) rotate(0.052336deg); }
  50% { transform: translate(0px, -20px) rotate(0deg); }
  50.833333% { transform: translate(-0.26168px, -19.986295px) rotate(-0.052336deg); }
  51.666667% { transform: translate(-0.522642px, -19.945219px) rotate(-0.104528deg); }
  52.5% { transform: translate(-0.782172px, -19.876883px) rotate(-0.156434deg); }
  53.333333% { transform: translate(-1.039558px, -19.781476px) rotate(-0.207912deg); }
  54.166667% { transform: translate(-1.294095px, -19.659258px) rotate(-0.258819deg); }
  55% { transform: translate(-1.545085px, -19.510565px) rotate(-0.309017deg); }
  55.833333% { transform: translate(-1.79184px, -19.335804px) rotate(-0.358368deg); }
  56.666667% { transform: translate(-2.033683px, -19.135455px) rotate(-0.406737deg); }
  57.5% { transform: translate(-2.269952px, -18.910065px) rotate(-0.45399deg); }
  58.333333% { transform: translate(-2.5px, -18.660254px) rotate(-0.5deg); }
  59.166667% { transform: translate(-2.723195px, -18.386706px) rotate(-0.544639deg); }
  60% { transform: translate(-2.938926px, -18.09017px) rotate(-0.587785deg); }
  60.833333% { transform: translate(-3.146602px, -17.77146px) rotate(-0.62932deg); }
  61.666667% { transform: translate(-3.345653px, -17.431448px) rotate(-0.669131deg); }
  62.5% { transform: translate(-3.535534px, -17.071068px) rotate(-0.707107deg); }
  63.333333% { transform: translate(-3.715724px, -16.691306px) rotate(-0.743145deg); }
  64.166667% { transform: translate(-3.88573px, -16.293204px) rotate(-0.777146deg); }
  65% { transform: translate(-4.045085px, -15.877853px) rotate(-0.809017deg); }
  65.833333% { transform: translate(-4.193353px, -15.44639px) rotate(-0.838671deg); }
  66.666667% { transform: translate(-4.330127px, -15px) rotate(-0.866025deg); }
  67.5% { transform: translate(-4.455033px, -14.539905px) rotate(-0.891007deg); }
  68.333333% { transform: translate(-4.567727px, -14.067366px) rotate(-0.913545deg); }
  69.166667% { transform: translate(-4.667902px, -13.583679px) rotate(-0.93358deg); }
  70% { transform: translate(-4.755283px, -13.09017px) rotate(-0.951057deg); }
  70.833333% { transform: translate(-4.829629px, -12.58819px) rotate(-0.965926deg); }
  71.666667% { transform: translate(-4.890738px, -12.079117px) rotate(-0.978148deg); }
  72.5% { transform: translate(-4.938442px, -11.564345px) rotate(-0.987688deg); }
  73.333333% { transform: translate(-4.972609px, -11.045285px) rotate(-0.994522deg); }
  74.166667% { transform: translate(-4.993148px, -10.52336px) rotate(-0.99863deg); }
  75% { transform: translate(-5px, -10px) rotate(-1deg); }
  75.833333% { transform: translate(-4.993148px, -9.47664px) rotate(-0.99863deg); }
  76.666667% { transform: translate(-4.972609px, -8.954715px) rotate(-0.994522deg); }
  77.5% { transform: translate(-4.938442px, -8.435655px) rotate(-0.987688deg); }
  78.333333% { transform: translate(-4.890738px, -7.920883px) rotate(-0.978148deg); }
  79.166667% { transform: translate(-4.829629px, -7.41181px) rotate(-0.965926deg); }
  80% { transform: translate(-4.755283px, -6.90983px) rotate(-0.951057deg); }
  80.833333% { transform: translate(-4.667902px, -6.416321px) rotate(-0.93358deg); }
  81.666667% { transform: translate(-4.567727px, -5.932634px) rotate(-0.913545deg); }
  82.5% { transform: translate(-4.455033px, -5.460095px) rotate(-0.891007deg); }
  83.333333% { transform: translate(-4.330127px, -5px) rotate(-0.866025deg); }
  84.166667% { transform: translate(-4.193353px, -4.55361px) rotate(-0.838671deg); }
  85% { transform: translate(-4.045085px, -4.122147px) rotate(-0.809017deg); }
  85.833333% { transform: translate(-3.88573px, -3.706796px) rotate(-0.777146deg); }
  86.666667% { transform: translate(-3.715724px, -3.308694px) rotate(-0.743145deg); }
  87.5% { transform: translate(-3.535534px, -2.928932px) rotate(-0.707107deg); }
  88.333333% { transform: translate(-3.345653px, -2.568552px) rotate(-0.669131deg); }
  89.166667% { transform: translate(-3.146602px, -2.22854px) rotate(-0.62932deg); }
  90% { transform: translate(-2.938926px, -1.90983px) rotate(-0.587785deg); }
  90.833333% { transform: translate(-2.723195px, -1.613294px) rotate(-0.544639deg); }
  91.666667% { transform: translate(-2.5px, -1.339746px) rotate(-0.5deg); }
  92.5% { transform: translate(-2.269952px, -1.089935px) rotate(-0.45399deg); }
  93.333333% { transform: translate(-2.033683px, -0.864545px) rotate(-0.406737deg); }
  94.166667% { transform: translate(-1.79184px, -0.664196px) rotate(-0.358368deg); }
  95% { transform: translate(-1.545085px, -0.489435px) rotate(-0.309017deg); }
  95.833333% { transform: translate(-1.294095px, -0.340742px) rotate(-0.258819deg); }
  96.666667% { transform: translate(-1.039558px, -0.218524px) rotate(-0.207912deg); }
  97.5% { transform: translate(-0.782172px, -0.123117px) rotate(-0.156434deg); }
  98.333333% { transform: translate(-0.522642px, -0.054781px) rotate(-0.104528deg); }
  99.166667% { transform: translate(-0.26168px, -0.013705px) rotate(-0.052336deg); }
  100% { transform: translate(0px, 0px) rotate(0deg); }
}
@keyframes groundedShadow {
  0% { transform: scaleX(1.04); opacity: 1; filter: blur(0px); }
  0.833333% { transform: scaleX(1.040055); opacity: 0.999849; filter: blur(0.000582px); }
  1.666667% { transform: scaleX(1.040219); opacity: 0.999397; filter: blur(0.002328px); }
  2.5% { transform: scaleX(1.040492); opacity: 0.998646; filter: blur(0.005232px); }
  3.333333% { transform: scaleX(1.040874); opacity: 0.997596; filter: blur(0.009287px); }
  4.166667% { transform: scaleX(1.041363); opacity: 0.996252; filter: blur(0.014482px); }
  5% { transform: scaleX(1.041958); opacity: 0.994616; filter: blur(0.020801px); }
  5.833333% { transform: scaleX(1.042657); opacity: 0.992694; filter: blur(0.028228px); }
  6.666667% { transform: scaleX(1.043458); opacity: 0.99049; filter: blur(0.036743px); }
  7.5% { transform: scaleX(1.04436); opacity: 0.988011; filter: blur(0.046322px); }
  8.333333% { transform: scaleX(1.045359); opacity: 0.985263; filter: blur(0.056939px); }
  9.166667% { transform: scaleX(1.046453); opacity: 0.982254; filter: blur(0.068565px); }
  10% { transform: scaleX(1.047639); opacity: 0.978992; filter: blur(0.081168px); }
  10.833333% { transform: scaleX(1.048914); opacity: 0.975486; filter: blur(0.094713px); }
  11.666667% { transform: scaleX(1.050274); opacity: 0.971746; filter: blur(0.109163px); }
  12.5% { transform: scaleX(1.051716); opacity: 0.967782; filter: blur(0.12448px); }
  13.333333% { transform: scaleX(1.053235); opacity: 0.963604; filter: blur(0.140619px); }
  14.166667% { transform: scaleX(1.054827); opacity: 0.959225; filter: blur(0.157539px); }
  15% { transform: scaleX(1.056489); opacity: 0.954656; filter: blur(0.175191px); }
  15.833333% { transform: scaleX(1.058214); opacity: 0.94991; filter: blur(0.193528px); }
  16.666667% { transform: scaleX(1.06); opacity: 0.945; filter: blur(0.2125px); }
  17.5% { transform: scaleX(1.06184); opacity: 0.939939; filter: blur(0.232054px); }
  18.333333% { transform: scaleX(1.063731); opacity: 0.934741; filter: blur(0.252137px); }
  19.166667% { transform: scaleX(1.065665); opacity: 0.92942; filter: blur(0.272694px); }
  20% { transform: scaleX(1.067639); opacity: 0.923992; filter: blur(0.293668px); }
  20.833333% { transform: scaleX(1.069647); opacity: 0.91847; filter: blur(0.315002px); }
  21.666667% { transform: scaleX(1.071684); opacity: 0.91287; filter: blur(0.336638px); }
  22.5% { transform: scaleX(1.073743); opacity: 0.907208; filter: blur(0.358515px); }
  23.333333% { transform: scaleX(1.075819); opacity: 0.901498; filter: blur(0.380575px); }
  24.166667% { transform: scaleX(1.077907); opacity: 0.895757; filter: blur(0.402757px); }
  25% { transform: scaleX(1.08); opacity: 0.89; filter: blur(0.425px); }
  25.833333% { transform: scaleX(1.082093); opacity: 0.884243; filter: blur(0.447243px); }
  26.666667% { transform: scaleX(1.084181); opacity: 0.878502; filter: blur(0.469425px); }
  27.5% { transform: scaleX(1.086257); opacity: 0.872792; filter: blur(0.491485px); }
  28.333333% { transform: scaleX(1.088316); opacity: 0.86713; filter: blur(0.513362px); }
  29.166667% { transform: scaleX(1.090353); opacity: 0.86153; filter: blur(0.534998px); }
  30% { transform: scaleX(1.092361); opacity: 0.856008; filter: blur(0.556332px); }
  30.833333% { transform: scaleX(1.094335); opacity: 0.85058; filter: blur(0.577306px); }
  31.666667% { transform: scaleX(1.096269); opacity: 0.845259; filter: blur(0.597863px); }
  32.5% { transform: scaleX(1.09816); opacity: 0.840061; filter: blur(0.617946px); }
  33.333333% { transform: scaleX(1.1); opacity: 0.835; filter: blur(0.6375px); }
  34.166667% { transform: scaleX(1.101786); opacity: 0.83009; filter: blur(0.656472px); }
  35% { transform: scaleX(1.103511); opacity: 0.825344; filter: blur(0.674809px); }
  35.833333% { transform: scaleX(1.105173); opacity: 0.820775; filter: blur(0.692461px); }
  36.666667% { transform: scaleX(1.106765); opacity: 0.816396; filter: blur(0.709381px); }
  37.5% { transform: scaleX(1.108284); opacity: 0.812218; filter: blur(0.72552px); }
  38.333333% { transform: scaleX(1.109726); opacity: 0.808254; filter: blur(0.740837px); }
  39.166667% { transform: scaleX(1.111086); opacity: 0.804514; filter: blur(0.755287px); }
  40% { transform: scaleX(1.112361); opacity: 0.801008; filter: blur(0.768832px); }
  40.833333% { transform: scaleX(1.113547); opacity: 0.797746; filter: blur(0.781435px); }
  41.666667% { transform: scaleX(1.114641); opacity: 0.794737; filter: blur(0.793061px); }
  42.5% { transform: scaleX(1.11564); opacity: 0.791989; filter: blur(0.803678px); }
  43.333333% { transform: scaleX(1.116542); opacity: 0.78951; filter: blur(0.813257px); }
  44.166667% { transform: scaleX(1.117343); opacity: 0.787306; filter: blur(0.821772px); }
  45% { transform: scaleX(1.118042); opacity: 0.785384; filter: blur(0.829199px); }
  45.833333% { transform: scaleX(1.118637); opacity: 0.783748; filter: blur(0.835518px); }
  46.666667% { transform: scaleX(1.119126); opacity: 0.782404; filter: blur(0.840713px); }
  47.5% { transform: scaleX(1.119508); opacity: 0.781354; filter: blur(0.844768px); }
  48.333333% { transform: scaleX(1.119781); opacity: 0.780603; filter: blur(0.847672px); }
  49.166667% { transform: scaleX(1.119945); opacity: 0.780151; filter: blur(0.849418px); }
  50% { transform: scaleX(1.12); opacity: 0.78; filter: blur(0.85px); }
  50.833333% { transform: scaleX(1.119945); opacity: 0.780151; filter: blur(0.849418px); }
  51.666667% { transform: scaleX(1.119781); opacity: 0.780603; filter: blur(0.847672px); }
  52.5% { transform: scaleX(1.119508); opacity: 0.781354; filter: blur(0.844768px); }
  53.333333% { transform: scaleX(1.119126); opacity: 0.782404; filter: blur(0.840713px); }
  54.166667% { transform: scaleX(1.118637); opacity: 0.783748; filter: blur(0.835518px); }
  55% { transform: scaleX(1.118042); opacity: 0.785384; filter: blur(0.829199px); }
  55.833333% { transform: scaleX(1.117343); opacity: 0.787306; filter: blur(0.821772px); }
  56.666667% { transform: scaleX(1.116542); opacity: 0.78951; filter: blur(0.813257px); }
  57.5% { transform: scaleX(1.11564); opacity: 0.791989; filter: blur(0.803678px); }
  58.333333% { transform: scaleX(1.114641); opacity: 0.794737; filter: blur(0.793061px); }
  59.166667% { transform: scaleX(1.113547); opacity: 0.797746; filter: blur(0.781435px); }
  60% { transform: scaleX(1.112361); opacity: 0.801008; filter: blur(0.768832px); }
  60.833333% { transform: scaleX(1.111086); opacity: 0.804514; filter: blur(0.755287px); }
  61.666667% { transform: scaleX(1.109726); opacity: 0.808254; filter: blur(0.740837px); }
  62.5% { transform: scaleX(1.108284); opacity: 0.812218; filter: blur(0.72552px); }
  63.333333% { transform: scaleX(1.106765); opacity: 0.816396; filter: blur(0.709381px); }
  64.166667% { transform: scaleX(1.105173); opacity: 0.820775; filter: blur(0.692461px); }
  65% { transform: scaleX(1.103511); opacity: 0.825344; filter: blur(0.674809px); }
  65.833333% { transform: scaleX(1.101786); opacity: 0.83009; filter: blur(0.656472px); }
  66.666667% { transform: scaleX(1.1); opacity: 0.835; filter: blur(0.6375px); }
  67.5% { transform: scaleX(1.09816); opacity: 0.840061; filter: blur(0.617946px); }
  68.333333% { transform: scaleX(1.096269); opacity: 0.845259; filter: blur(0.597863px); }
  69.166667% { transform: scaleX(1.094335); opacity: 0.85058; filter: blur(0.577306px); }
  70% { transform: scaleX(1.092361); opacity: 0.856008; filter: blur(0.556332px); }
  70.833333% { transform: scaleX(1.090353); opacity: 0.86153; filter: blur(0.534998px); }
  71.666667% { transform: scaleX(1.088316); opacity: 0.86713; filter: blur(0.513362px); }
  72.5% { transform: scaleX(1.086257); opacity: 0.872792; filter: blur(0.491485px); }
  73.333333% { transform: scaleX(1.084181); opacity: 0.878502; filter: blur(0.469425px); }
  74.166667% { transform: scaleX(1.082093); opacity: 0.884243; filter: blur(0.447243px); }
  75% { transform: scaleX(1.08); opacity: 0.89; filter: blur(0.425px); }
  75.833333% { transform: scaleX(1.077907); opacity: 0.895757; filter: blur(0.402757px); }
  76.666667% { transform: scaleX(1.075819); opacity: 0.901498; filter: blur(0.380575px); }
  77.5% { transform: scaleX(1.073743); opacity: 0.907208; filter: blur(0.358515px); }
  78.333333% { transform: scaleX(1.071684); opacity: 0.91287; filter: blur(0.336638px); }
  79.166667% { transform: scaleX(1.069647); opacity: 0.91847; filter: blur(0.315002px); }
  80% { transform: scaleX(1.067639); opacity: 0.923992; filter: blur(0.293668px); }
  80.833333% { transform: scaleX(1.065665); opacity: 0.92942; filter: blur(0.272694px); }
  81.666667% { transform: scaleX(1.063731); opacity: 0.934741; filter: blur(0.252137px); }
  82.5% { transform: scaleX(1.06184); opacity: 0.939939; filter: blur(0.232054px); }
  83.333333% { transform: scaleX(1.06); opacity: 0.945; filter: blur(0.2125px); }
  84.166667% { transform: scaleX(1.058214); opacity: 0.94991; filter: blur(0.193528px); }
  85% { transform: scaleX(1.056489); opacity: 0.954656; filter: blur(0.175191px); }
  85.833333% { transform: scaleX(1.054827); opacity: 0.959225; filter: blur(0.157539px); }
  86.666667% { transform: scaleX(1.053235); opacity: 0.963604; filter: blur(0.140619px); }
  87.5% { transform: scaleX(1.051716); opacity: 0.967782; filter: blur(0.12448px); }
  88.333333% { transform: scaleX(1.050274); opacity: 0.971746; filter: blur(0.109163px); }
  89.166667% { transform: scaleX(1.048914); opacity: 0.975486; filter: blur(0.094713px); }
  90% { transform: scaleX(1.047639); opacity: 0.978992; filter: blur(0.081168px); }
  90.833333% { transform: scaleX(1.046453); opacity: 0.982254; filter: blur(0.068565px); }
  91.666667% { transform: scaleX(1.045359); opacity: 0.985263; filter: blur(0.056939px); }
  92.5% { transform: scaleX(1.04436); opacity: 0.988011; filter: blur(0.046322px); }
  93.333333% { transform: scaleX(1.043458); opacity: 0.99049; filter: blur(0.036743px); }
  94.166667% { transform: scaleX(1.042657); opacity: 0.992694; filter: blur(0.028228px); }
  95% { transform: scaleX(1.041958); opacity: 0.994616; filter: blur(0.020801px); }
  95.833333% { transform: scaleX(1.041363); opacity: 0.996252; filter: blur(0.014482px); }
  96.666667% { transform: scaleX(1.040874); opacity: 0.997596; filter: blur(0.009287px); }
  97.5% { transform: scaleX(1.040492); opacity: 0.998646; filter: blur(0.005232px); }
  98.333333% { transform: scaleX(1.040219); opacity: 0.999397; filter: blur(0.002328px); }
  99.166667% { transform: scaleX(1.040055); opacity: 0.999849; filter: blur(0.000582px); }
  100% { transform: scaleX(1.04); opacity: 1; filter: blur(0px); }
}
.hero-product { animation: none; }
#hero-still {
  transform-origin: 50% 55%;
  animation: gentleFloat 5.333333s linear infinite;
}
.hero-source-shadow {
  transform: scaleX(1.04);
  transform-origin: 51.1% 95.2%;
  overflow: visible;
  animation: groundedShadow 5.333333s linear infinite;
}
.button { position: relative; overflow: hidden; }
.theme-cream .button {
  transition: transform .3s cubic-bezier(.25,.8,.25,1), box-shadow .3s ease, background .3s ease;
}
.theme-cream .button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,.1);
}
.theme-cream header .button:active,
.theme-cream .hero .button.ink:active,
.theme-cream .input-row button:active {
  transform: translateY(1px) scale(.98);
  box-shadow: 0 1px 4px rgba(0,0,0,.1);
}
/* Visible by default: reveal enhancement never requires JS to read the page. */
.reveal-on-scroll { opacity: 1; transform: none; }
.motion-ready .reveal-on-scroll.is-visible {
  transition: opacity .8s ease-out, transform .8s ease-out;
}
.motion-ready .reveal-on-scroll:not(.is-visible) {
  opacity: 0; transform: translateY(30px);
}
.motion-ready .reveal-on-scroll:focus-within { opacity: 1; transform: none; }
.demo-link .play { display: inline-block; transition: transform .2s ease, color .2s ease; }
.demo-link:hover .play { color: #d94f38; transform: scale(1.1); }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .hero-product, #hero-still, .hero-source-shadow { animation: none; }
  .motion-ready .reveal-on-scroll,
  .motion-ready .reveal-on-scroll:not(.is-visible) { opacity: 1; transform: none; transition: none; }
  .theme-cream .button,
  .theme-cream header .button:hover,
  .theme-cream .hero .button.ink:hover,
  .theme-cream .input-row button:hover,
  .theme-cream header .button:active,
  .theme-cream .hero .button.ink:active,
  .theme-cream .input-row button:active,
  .demo-link:hover .play { transform: none; transition: none; }
}
