/* Shared, accessible feedback for the catalogue and studio. */
:where(button,a.btn,a.button,a.primary,.upload-button,summary,.contacts a,.creator-nav){position:relative;isolation:isolate;touch-action:manipulation;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,filter .18s ease; -webkit-tap-highlight-color:transparent}
:where(button,a.btn,a.button,a.primary,.upload-button,summary,.contacts a,.creator-nav):focus-visible{outline:3px solid #19a9cb;outline-offset:4px;box-shadow:0 0 0 6px #19a9cb22}
@media(hover:hover){:where(button,a.btn,a.button,a.primary,.upload-button,summary,.contacts a,.creator-nav):not(:disabled):not([aria-disabled=true]):hover{transform:translateY(-3px);box-shadow:0 7px 18px #20264b26;filter:brightness(1.04)}.template-card:hover,.asset-grid button:hover{border-color:#19a9cb;box-shadow:0 8px 24px #19a9cb26}}
:where(button,a.btn,a.button,a.primary,.upload-button,summary):not(:disabled):active{transform:translateY(1px) scale(.97)}
:where(button):disabled{cursor:not-allowed;filter:grayscale(.5);opacity:.48;box-shadow:none}
:where(button)[aria-pressed=true],.filter.active,.layers button.active{box-shadow:inset 0 0 0 2px #19a9cb,0 3px 12px #19a9cb20}
.ui-ripple{position:absolute;pointer-events:none;z-index:5;width:16px;height:16px;border-radius:50%;background:#19a9cb55;animation:ui-ripple .5s ease-out forwards;transform:translate(-50%,-50%)}
@keyframes ui-ripple{to{transform:translate(-50%,-50%) scale(7);opacity:0}}
.ui-busy{cursor:progress!important}.ui-busy::after{content:'';display:inline-block;width:13px;height:13px;margin-inline-start:8px;vertical-align:middle;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .7s linear infinite}
@keyframes ui-spin{to{transform:rotate(360deg)}}
.ui-file-ready{color:#167653;font-weight:700}.upload-button:focus-within{outline:3px solid #19a9cb;outline-offset:3px}
@media(prefers-reduced-motion:reduce){:where(button,a.btn,a.button,a.primary,.upload-button,summary,.contacts a,.creator-nav){transition:none!important;transform:none!important}.ui-ripple{display:none}.ui-busy::after{animation:none;border-style:dotted}}
.original-brand{perspective:650px;padding:6px 12px 10px 2px}.header-logo-3d{position:relative;display:block;line-height:0;transform-style:preserve-3d;transform:rotateX(5deg) rotateY(-13deg);animation:header-logo-float 6s ease-in-out infinite}.header-logo-3d img{position:relative;border-radius:16px;background:#fff;box-shadow:1px 1px 0 #e4e8f0,2px 2px 0 #c8d0df,3px 3px 0 #aebbd0,4px 4px 0 #8799b5,5px 5px 0 #596d91,6px 6px 0 #283458,10px 13px 18px #14223b30;padding:7px;transform:translateZ(7px)}.header-logo-edge{position:absolute;inset:4px -5px -6px 5px;border-radius:16px;background:linear-gradient(135deg,#607798,#24294f);transform:translateZ(-2px)}.original-brand:hover .header-logo-3d{animation-play-state:paused}.original-brand:focus-visible{outline:3px solid #19a9cb;outline-offset:3px;border-radius:16px}@keyframes header-logo-float{0%,100%{transform:translateY(0) rotateX(5deg) rotateY(-13deg)}50%{transform:translateY(-3px) rotateX(0deg) rotateY(5deg)}}@media(prefers-reduced-motion:reduce){.header-logo-3d{animation:none}}
.contacts>a,.contacts>div{display:flex;align-items:center;gap:12px}.contacts .contact-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#ffffff10;border:1px solid #ffffff25;color:#d7f567;transition:transform .2s,background .2s}.contact-icon svg{width:23px;height:23px}.contacts a:hover .contact-icon{background:#d7f567;color:#102340;transform:rotate(-5deg) scale(1.08)}.contacts>a>span:last-child,.contacts>div>span:last-child{min-width:0;overflow-wrap:anywhere}@media(prefers-reduced-motion:reduce){.contacts .contact-icon{transition:none}.contacts a:hover .contact-icon{transform:none}}
#open-map{flex-wrap:wrap}#open-map small{display:block;width:100%;padding-left:50px;font-size:12px;color:#d7f567}.directions-dialog{box-sizing:border-box;width:min(740px,94vw);max-height:90vh;overflow:auto;border:0;border-radius:22px;padding:26px;background:#fff;color:#102340;font-family:inherit}.directions-dialog::backdrop{background:#102340bb}.directions-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.directions-head h2{font-size:30px;margin:8px 0}.directions-head button{border:1px solid #cbd5e1;border-radius:50%;width:38px;height:38px;font-size:26px;background:#f0f5ff;color:#102340}.directions-dialog iframe{display:block;width:100%;height:300px;border:0;border-radius:14px;background:#e8eef5;margin:18px 0}.directions-dialog label{display:block;font-weight:700;margin:16px 0 8px}.directions-dialog input,.directions-dialog select{box-sizing:border-box;display:block;width:100%;padding:13px;border:1px solid #b8c5d7;border-radius:10px;background:#fff;color:#102340;font:inherit}.directions-dialog .btn{margin-top:14px;background:#102340;color:#fff;border:0;cursor:pointer;text-decoration:none}.directions-dialog .route-open{background:#d7f567;color:#102340;display:inline-flex}.directions-dialog .map-note{font-size:13px;line-height:1.6;color:#52627b}.directions-dialog .map-status{font-size:14px;line-height:1.6;color:#205c51}@media(max-width:600px){.directions-dialog{padding:18px}.directions-dialog iframe{height:240px}}
