/* High-energy controls. Only transforms and decorative layers change size;
   the layout, labels, focus targets and native actions stay in place. */
.fx-button.fx-button{position:relative;isolation:isolate;overflow:hidden;touch-action:manipulation;transform-origin:center;transition:scale 310ms cubic-bezier(.2,1.55,.35,1),translate 280ms cubic-bezier(.2,1.3,.35,1),transform 180ms ease,background-color 180ms ease,color 180ms ease,border-color 180ms ease,box-shadow 240ms ease}
.fx-button[data-fx-size='small']{border-radius:10px}.fx-button[data-fx-size='small']:not(.planner-step){padding-inline:10px}
.fx-button.fx-button::before,.fx-button.fx-button::after{display:block;content:'';position:absolute;pointer-events:none;border-radius:inherit}
.fx-button.fx-button::before{inset:0;padding:1.8px;background:linear-gradient(110deg,#76ddff,#9c8cff 25%,#f2baff 48%,#a4e7ff 72%,#a17bff);background-size:300% 100%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;z-index:4;transition:opacity 160ms ease}
.fx-button.fx-button::after{inset:-80% auto -80% -65%;width:46%;z-index:3;opacity:0;transform:translate3d(0,0,0) skewX(-20deg);background:linear-gradient(105deg,transparent 5%,#93dfff1c 25%,#ffffffb8 46%,#e6c8ffe0 53%,#b4dfff59 66%,transparent 92%);transition:opacity 140ms ease}
.fx-button[data-fx-style='solid']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']){z-index:5;scale:1.075;translate:0 -5px;transform:translate3d(var(--button-mx,0px),var(--button-my,0px),0);color:#181024;background:linear-gradient(110deg,#fffaff 3%,#d3b4ff 29%,#b2d9ff 53%,#f2c9ff 77%,#fcf6ff 98%);background-size:250% 100%;border-color:#f5e3ff;box-shadow:0 0 0 1px #e6caff7a,0 0 27px #b287ff78,0 14px 42px #7769ff4d,inset 0 1px 0 #fff;animation:button-pearl 2300ms ease-in-out infinite alternate}
.fx-button.enter-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled){scale:1.12;translate:0 -6px;box-shadow:0 0 0 1px #fff8,0 0 34px #ba9aff85,0 18px 48px #7e82ff40}
.fx-button[data-fx-style='solid']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true'])::after{animation:button-chrome-sweep 1350ms cubic-bezier(.2,.65,.25,1) infinite}
.fx-button[data-fx-style='solid']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true'])::before{opacity:.65;animation:button-spectrum 2400ms linear infinite alternate}
.fx-button[data-fx-style='outline']::after{inset:0;width:auto;border-radius:inherit;background:radial-gradient(115px circle at var(--button-x,50%) var(--button-y,50%),#b69bff50,#798fff12 58%,transparent 85%);transform:none}
.fx-button[data-fx-style='outline']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']){z-index:5;scale:1.06;translate:0 -4px;transform:translate3d(var(--button-mx,0px),var(--button-my,0px),0);color:#f0e9ff;background:linear-gradient(115deg,#322449,#1d263f 57%,#30203b);border-color:#c3a4ff;box-shadow:0 0 0 1px #a991ff55,0 0 23px #8f71ff45,0 11px 32px #527bd635,inset 0 1px 0 #e6ceff24}
.fx-button[data-fx-style='outline']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true'])::before{opacity:1;animation:button-spectrum 1800ms linear infinite alternate}
.fx-button[data-fx-style='outline']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true'])::after{opacity:1}
.fx-button[data-fx-size='small']:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']){scale:1.045;translate:0 -2px;box-shadow:0 0 18px #a682ff38,inset 0 0 0 1px #d5baff1c}
.fx-button.fx-button:focus-visible{outline:2px solid #eee2ff;outline-offset:6px}
.fx-arrow{display:inline-block;flex:none;position:relative;z-index:2;transform-origin:center;transition:translate 300ms cubic-bezier(.2,1.7,.3,1),rotate 340ms cubic-bezier(.2,1.5,.3,1),scale 280ms ease}
.fx-arrow[data-fx-arrow-added]{font-size:1.25em;line-height:1}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow{scale:1.22}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='up-right']{translate:5px -5px;rotate:10deg}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='down-right']{translate:5px 5px;rotate:-10deg}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='right']{translate:7px 0;rotate:-7deg}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='left']{translate:-6px 0;rotate:7deg}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='up']{translate:0 -5px}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='down']{translate:0 5px}
.fx-button:is(.is-fx-hover,.is-fx-active,:focus-visible):not(:disabled):not([aria-disabled='true']) .fx-arrow[data-fx-arrow='replay']{rotate:-160deg;scale:1.15}
.fx-button.fx-button .contact-send-spark{display:none}
.fx-ripple{position:absolute;pointer-events:none;z-index:3;aspect-ratio:1;border-radius:50%;translate:-50% -50%;background:radial-gradient(circle,transparent 20%,#a8d8ff0a 31%,#fff9 39%,#cfadff80 43%,#9ddfff2b 49%,transparent 57%);transform:scale(.04);opacity:0;animation:button-light-ring 620ms cubic-bezier(.15,.65,.25,1) forwards}
.fx-button[data-fx-style='outline'] .fx-ripple{background:radial-gradient(circle,transparent 20%,#91bbff10 30%,#acbaff85 39%,#d9acff80 43%,#a1bbff1a 49%,transparent 57%)}
.fx-button.fx-button:is(.is-fx-pressed,:active):not(:disabled):not([aria-disabled='true']){scale:.95;translate:0 1px;transform:translate3d(0,0,0);transition:scale 85ms ease,translate 85ms ease,transform 85ms ease,background-color 100ms ease}
.fx-button.fx-button:disabled,.fx-button.fx-button[aria-disabled='true']{scale:1;translate:0 0;transform:none;animation:none}
.fx-button.fx-button:disabled::before,.fx-button.fx-button:disabled::after,.fx-button.fx-button[aria-disabled='true']::before,.fx-button.fx-button[aria-disabled='true']::after{opacity:0;animation:none}
@keyframes button-pearl{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes button-spectrum{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes button-chrome-sweep{0%{opacity:0;transform:translate3d(-60%,0,0) skewX(-20deg)}12%{opacity:.85}72%{opacity:.85}88%,100%{opacity:0;transform:translate3d(440%,0,0) skewX(-20deg)}}
@keyframes button-light-ring{0%{opacity:.7;transform:scale(.04)}28%{opacity:.55}100%{opacity:0;transform:scale(1.12)}}
@media(hover:none),(pointer:coarse){
 .fx-button[data-fx-style='solid']:is(.is-fx-active,:focus-visible):not(:disabled){scale:1.045;translate:0 -2px}
 .fx-button[data-fx-style='outline']:is(.is-fx-active,:focus-visible):not(:disabled){scale:1.035;translate:0 -2px}
 .fx-button[data-fx-size='small']:is(.is-fx-active,:focus-visible):not(:disabled){scale:1.025;translate:0 -1px}
 .fx-button.fx-button:is(.is-fx-pressed,:active):not(:disabled){scale:.96;translate:0 1px}
}
@media(prefers-reduced-motion:reduce){
 .fx-button.fx-button,.fx-button.fx-button .fx-arrow{animation:none!important;transition:none!important;scale:1!important;translate:0 0!important;transform:none!important;rotate:0deg!important}
 .fx-button.fx-button::before,.fx-button.fx-button::after{animation:none!important;transition:none!important}
 .fx-button.fx-button::after,.fx-ripple{display:none!important}
}
@media(forced-colors:active){.fx-button.fx-button::before,.fx-button.fx-button::after,.fx-ripple{display:none!important}.fx-button.fx-button:focus-visible{outline-color:Highlight}}

@supports not ((mask-composite:exclude) or (-webkit-mask-composite:xor)){.fx-button.fx-button::before{padding:0;background:none;border:1px solid #c7b6ff;-webkit-mask:none;mask:none}}

/* Choice cards keep their own shape but get a stronger, matching edge. */
.planner-app .planner-choice{transition:scale 240ms cubic-bezier(.2,1.4,.35,1),transform 220ms ease,border-color 180ms ease,box-shadow 220ms ease,background 180ms ease}
.planner-app .planner-choice.is-selected,.planner-app .planner-choice:has(input:checked){border-color:#cfb6ff;box-shadow:0 0 0 1px #c1a4ff4d,0 0 24px #9975ee25,inset 0 1px 0 #f2d9ff21}
@media(hover:hover) and (pointer:fine){.planner-app .planner-choice:hover{scale:1.015;transform:translateY(-4px);border-color:#d0b7ff;box-shadow:0 8px 28px #08051066,0 0 20px #9c7bea29}}
@media(hover:none),(pointer:coarse){.planner-app .planner-choice:active{scale:.985;transition-duration:90ms}}
@media(prefers-reduced-motion:reduce){.planner-app .planner-choice{scale:1!important;transform:none!important;transition:none!important}}
.fx-button:disabled .fx-ripple,.fx-button[aria-disabled='true'] .fx-ripple{display:none}
