@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
.site-footer{gap:18px;flex-wrap:wrap;padding-block:18px}.footer-links{display:flex;align-items:center;gap:18px}.footer-links a{padding-block:8px;color:#a5adbb;text-decoration:none}.footer-links a:hover{text-decoration:underline;color:#fff}
:root{color-scheme:dark;--bg:#08090d;--surface:#121419;--text:#f5f6f8;--muted:#9398a6;--accent:#00d4ed;--line:#24272e;font-family:'DM Sans',sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 50% 44%,#14152370,transparent 53%),var(--bg)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0}a{color:inherit}button:disabled{cursor:default;opacity:.4}.topbar{height:86px;margin:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff0b}.small-brand{display:flex;align-items:center;gap:6px;text-decoration:none;font:800 22px 'Manrope',sans-serif;letter-spacing:-1px}.top-actions{display:flex;gap:22px;align-items:center}.prototype-badge{font-size:12px;color:#969bab;border:1px solid var(--line);border-radius:20px;padding:6px 11px}.quiet-button{font-size:14px;border:1px solid #30343d;background:#17191e;border-radius:30px;padding:10px 17px}.quiet-button span{margin-left:12px}.quiet-button:hover{background:#252830}.profile-page{display:flex;align-items:center;flex-direction:column;min-height:calc(100svh - 164px);padding:32px 16px 30px}.brand-lockup{display:flex;align-items:center;flex-direction:column;line-height:1;font:800 30px 'Manrope',sans-serif;letter-spacing:-1.8px}.brand-lockup img{display:block;height:68px;width:68px}.profile-address{font-size:12px;letter-spacing:1.2px;color:#7d8391;margin:15px 0 0}.universe{position:relative;width:min(490px,100%);aspect-ratio:1;margin:2px 0 -12px;isolation:isolate}.halo{position:absolute;border:1px solid #ffffff07;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;transition:opacity .6s}.halo-one{width:57%;height:57%;border-color:#ffffff0a}.halo-two{width:76%;height:76%}.halo-three{width:95%;height:95%;border-style:dashed;border-color:#ffffff06}.expanded .halo{opacity:.4}.profile-hub{position:absolute;left:50%;top:50%;width:40%;aspect-ratio:1;transform:translate(-50%,-50%);padding:0;border-radius:50%;background:#181925;border:2px solid #969ba54f;box-shadow:0 0 0 7px #ffffff03,0 20px 60px #0008;overflow:hidden;z-index:3;transition:box-shadow .4s,scale .4s,border-color .4s}.profile-hub:hover{box-shadow:0 0 0 9px #ffffff06,0 0 45px #00d4ed18;border-color:var(--accent)}.profile-hub:active{scale:.97}.profile-hub img{width:100%;height:100%;object-fit:cover;object-position:50% 43%}.portrait-shade{position:absolute;inset:0;background:linear-gradient(transparent 33%,#04060a20 49%,#04060af5 100%)}.hub-copy{position:absolute;bottom:14%;left:3%;right:3%;text-align:center}.hub-copy>span:first-child{display:block;font-weight:700;font-size:clamp(17px,2.5vw,22px);letter-spacing:-.6px}.hub-action{display:block;font-size:9px;letter-spacing:1.3px;color:#c2c9d4;margin-top:8px}.hub-action span{color:var(--accent);font-size:13px}.satellite{position:absolute;left:50%;top:50%;width:20%;transform:translate(-50%,-50%) scale(.15);opacity:0;pointer-events:none;transition:transform .65s cubic-bezier(.22,1.35,.4,1),opacity .3s;transition-delay:calc(var(--i)*35ms);z-index:1;background:transparent;padding:0}.expanded .satellite{opacity:1;pointer-events:auto;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1)}.satellite .orb{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--orb);box-shadow:inset 0 1px 2px #ffffff55,0 12px 25px #0005;border:1px solid #ffffff12;transition:transform .25s,box-shadow .25s}.satellite:hover{z-index:4}.satellite:hover .orb{transform:scale(1.13);box-shadow:inset 0 1px 2px #ffffff88,0 13px 35px #0009}.orb svg{width:46%;height:46%;fill:currentColor}.orb .stroke{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.orb-label{display:block;text-align:center;font-size:13px;margin-top:9px;color:#d8dae2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-caption{text-align:center;z-index:4}.profile-caption p{margin:0;font-size:16px;color:#c5c8d1}.profile-caption .hint{font-size:13px;color:#727988;margin-top:9px}.share-button{display:flex;align-items:center;gap:9px;margin-top:24px;background:transparent;font-size:13px;color:#b7bdc8;padding:10px 15px;border-radius:25px}.share-button:hover{background:#ffffff08;color:white}.share-button svg{height:16px;width:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}footer{min-height:78px;display:flex;justify-content:space-between;align-items:center;margin:0 5%;border-top:1px solid #ffffff0b;font-size:12px;color:#666e7e}footer button{background:none;font-size:13px;color:#c8ccd7}footer button span{margin-left:10px;color:var(--accent)}dialog{color:var(--text);border:1px solid #30343c;background:#14161c;border-radius:24px;padding:30px;box-shadow:0 30px 150px #000b;max-height:90svh}dialog::backdrop{background:#030509aa;backdrop-filter:blur(10px)}.close-button{display:grid;place-items:center;background:#ffffff08;width:34px;height:34px;font-size:25px;border-radius:50%;color:#c2c6d0}.close-button:hover{background:#ffffff15}.link-dialog{width:min(410px,calc(100vw - 32px));text-align:center}.link-dialog>.close-button{position:absolute;top:16px;right:16px}.preview-orb{height:82px;width:82px;margin:12px auto 20px;border-radius:50%;display:grid;place-items:center;background:var(--orb);box-shadow:inset 0 1px 2px #fff7}.preview-orb svg{height:42px;width:42px;fill:white}.preview-orb .stroke{fill:none;stroke:white;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.link-dialog h2{font:700 26px 'Manrope',sans-serif;margin:0 0 9px}.link-dialog p{color:var(--muted);font-size:15px;line-height:1.6;overflow-wrap:anywhere}.external-button,.primary-button{display:block;border-radius:12px;background:var(--accent);color:#071014;font-weight:700;padding:14px 22px;text-decoration:none;text-align:center}.external-button{margin-top:25px}.editor{width:min(560px,calc(100vw - 24px));padding:28px}.editor-heading{display:flex;justify-content:space-between;align-items:center}.eyebrow{color:var(--accent);letter-spacing:2px;font-size:10px;font-weight:700}.editor h1{font:700 27px 'Manrope',sans-serif;margin:7px 0}.editor-note{font-size:13px;color:var(--muted);margin:4px 0 24px}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:20px;margin-top:20px;border-top:1px solid var(--line)}#save-status{font-size:12px;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#272c35;color:white;border:1px solid #ffffff1a;border-radius:30px;padding:13px 22px;font-size:14px;opacity:0;pointer-events:none;z-index:10;transition:.25s;max-width:90%;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1000px) and (min-height:850px){.profile-page{padding-top:48px}.universe{width:530px}}
@media(max-width:600px){.topbar{height:66px;margin:0 20px}.prototype-badge{display:none}.profile-page{min-height:calc(100svh - 141px);padding-top:25px}.brand-lockup{font-size:26px}.brand-lockup img{height:58px;width:58px}.universe{margin:20px 0 5px}.hub-action{font-size:7px;letter-spacing:.7px}.hub-copy>span:first-child{font-size:17px}.orb-label{font-size:12px;margin-top:7px}.profile-caption p{font-size:14px}.profile-caption .hint{font-size:12px}.share-button{margin-top:17px}footer{margin:0 20px;min-height:75px}footer>span{max-width:135px;line-height:1.6}.editor{padding:23px}.top-actions{gap:0}}
.profile-hub,.profile-hub:hover{cursor:default;border-color:color-mix(in srgb,var(--accent) 70%,white 30%);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 7%,transparent),0 0 28px color-mix(in srgb,var(--accent) 30%,transparent),0 0 75px color-mix(in srgb,var(--accent) 18%,transparent),0 20px 60px #0008;transition:box-shadow .7s ease,border-color .7s ease,scale .4s}
.expanded .profile-hub,.expanded .profile-hub:hover{border-color:#969ba54f;box-shadow:0 0 0 5px #ffffff03,0 0 12px color-mix(in srgb,var(--accent) 6%,transparent),0 20px 60px #0008}
.field{display:block;margin-top:15px}.field-label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:#d4d7e0}.field input,.field textarea,.type-select select{width:100%;border:1px solid #343844;background:#0d1015;border-radius:10px;padding:11px 12px;color:#f0f3f7;font-size:16px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#626b7c}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-help{font-size:12px;color:#8e96a6;line-height:1.5;margin:8px 0}.photo-row{display:flex;align-items:center;gap:17px}.editor-avatar{width:66px;height:66px;border-radius:50%;object-fit:cover;border:1px solid #525866}.upload-button{display:inline-block;border:1px solid #3b414d;border-radius:9px;padding:9px 12px;font-size:13px;position:relative;cursor:pointer;overflow:hidden}.upload-button input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.upload-button:focus-within{outline:2px solid var(--accent)}.accent-field{border:0;padding:0;margin:25px 0;display:flex;gap:12px}.accent-field legend{margin-bottom:12px}.swatch{width:30px;height:30px;position:relative;cursor:pointer}.swatch input{position:absolute;opacity:0;inset:0}.swatch span{display:block;background:var(--swatch);width:25px;height:25px;border-radius:50%;margin:2px}.swatch input:checked+span{outline:2px solid white;outline-offset:4px}.swatch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:4px}.links-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px}.links-heading h2{font-size:18px}.link-list{display:grid;gap:14px}.link-card{border:1px solid #2a303b;border-radius:15px;padding:15px;margin:0;min-width:0;background:#171b22}.link-card-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.type-select select{font-size:14px;padding:8px;width:140px}.link-tools{display:flex;gap:6px}.icon-button{background:#252b35;border-radius:7px;width:32px;height:32px;font-size:19px}.icon-button:hover:not(:disabled){background:#384151}.link-card .field{margin-top:12px}.link-card .field-label{font-size:12px;margin-bottom:6px;color:#aeb6c6}.add-link{width:100%;padding:13px;border:1px dashed #48515e;background:transparent;border-radius:12px;margin-top:15px;font-size:14px}.add-link:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.reset-button{background:transparent;color:#8791a2;font-size:12px;text-decoration:underline;text-underline-offset:4px;margin-top:24px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sample-note{font-size:12px!important;color:#737f92!important}.share-title{margin-top:20px!important;overflow-wrap:anywhere}.empty-links{font-size:14px;color:var(--muted);line-height:1.6}.editor-footer{position:sticky;bottom:-28px;background:#14161cf5;padding-bottom:15px;z-index:5;backdrop-filter:blur(10px)}
@media(max-width:380px){.field-grid{grid-template-columns:1fr;gap:0}.hub-copy>span:first-child{font-size:15px}.orb-label{font-size:12px}.editor{padding:18px}.link-card{padding:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
.logo-controls{display:flex;gap:13px;align-items:flex-start;margin:16px 0 6px;padding-top:14px;border-top:1px solid #ffffff0a}.editor-link-logo{flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:var(--orb);display:grid;place-items:center;overflow:hidden}.editor-link-logo svg{width:25px;height:25px;fill:white}.editor-link-logo .stroke{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.logo-control-actions{min-width:0}.restore-icon{font-size:12px;color:#b7c2d3;background:none;text-decoration:underline;text-underline-offset:3px;margin:9px 0 0;padding:0;display:block}.restore-icon[hidden]{display:none}.logo-upload-status{font-size:12px;color:#ffca9c;line-height:1.5;margin:4px 0}.logo-upload-status:empty{display:none}.orb.custom-logo,.preview-orb.custom-logo{overflow:hidden}.link-logo-image{width:78%;height:78%;object-fit:contain;display:block}.logo-controls .field-help{max-width:300px}
.profile-hub.dial-enabled{touch-action:none;user-select:none}.profile-hub img{pointer-events:none;-webkit-user-drag:none}.profile-hub.dial-enabled::after{content:'';position:absolute;inset:4px;border-radius:50%;border:2px dashed #ffffff24;transform:rotate(var(--dial-angle,0deg));pointer-events:none}.dial-dragging .satellite{transition:none!important}.dial-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin:12px 0 22px;font-size:12px;color:#aab4c5}.dial-controls[hidden],.pause-animation[hidden]{display:none}.dial-controls button{width:38px;height:38px;border-radius:50%;background:#ffffff0c;font-size:23px}.dial-controls button:hover{background:#ffffff1c}.dial-controls output{display:block;text-align:center;font-size:11px;color:#8394a6;margin-top:5px}.feature-badge{display:inline-block;border:1px solid #af83fa60;background:#a177fb13;color:#c8a5ff;font-size:10px;letter-spacing:.8px;border-radius:5px;padding:3px 6px;white-space:nowrap}.pause-animation{font-size:12px;color:#aeb7c7;background:transparent;text-decoration:underline;margin:0 0 15px}.customization-settings{border:1px solid #a177fb40;background:#17141f;border-radius:15px;padding:16px;margin:24px 0}.customization-settings .links-heading{border:0;padding:0;gap:10px}.customization-settings h2{font-size:17px}.toggle-field{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.5;margin:16px 0}.toggle-field input{accent-color:var(--accent);width:18px;height:18px}.customization-settings input[type=range]{padding:0;accent-color:var(--accent)}.angle-output{font-size:12px;color:#b9a6d9}.background-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.background-option{min-height:58px;font-size:12px;border:1px solid #ffffff22;border-radius:9px;color:white}.background-option[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.color-background{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin:18px 0}.color-background input{width:50px;height:34px;padding:2px;border:1px solid #ffffff25;background:none;border-radius:7px}.background-preview{height:100px;border-radius:10px;display:grid;place-items:center;border:1px solid #ffffff22;font-size:14px}.background-preview span{background:#08090d99;padding:8px 12px;border-radius:6px;color:white}.custom-background .profile-caption p,.custom-background .orb-label{color:#fff;text-shadow:0 1px 5px #000}.custom-background .profile-address,.custom-background footer,.custom-background .hint{color:#c5ceda;text-shadow:0 1px 5px #000}.custom-background .profile-caption{padding:10px 16px;border-radius:12px;background:#08090d88}.custom-background .topbar,.custom-background footer{background:#08090d55}.custom-background .dial-controls{background:#08090d88;padding:5px 10px;border-radius:30px}.customization-settings h3{margin-top:22px}
.profile-hub.dial-enabled::after{display:none}.dial-bezel{display:none;position:absolute;inset:3px;border-radius:50%;z-index:5;pointer-events:none;transform:rotate(var(--dial-angle,0deg));background:repeating-conic-gradient(from 0deg,#e1e6ef88 0deg 1.5deg,transparent 1.5deg 9deg);mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px))}.dial-enabled .dial-bezel{display:block}.dial-bezel::after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(from -3deg,var(--accent) 0deg 6deg,transparent 6deg 360deg)}.expanded .profile-hub:not(.dial-used) .dial-bezel{animation:dial-invitation 1.2s ease-in-out .65s 1}.dial-dragging .dial-bezel,.dial-used .dial-bezel{animation:none!important}.profile-hub.dial-enabled:hover .dial-bezel{filter:brightness(1.3)}@keyframes dial-invitation{0%,100%{transform:rotate(var(--dial-angle,0deg))}35%{transform:rotate(calc(var(--dial-angle,0deg) + 14deg))}70%{transform:rotate(calc(var(--dial-angle,0deg) - 8deg))}}@media(prefers-reduced-motion:reduce){.dial-bezel{animation:none!important}}
/* Dense rings keep names available on hover/focus and in accessible button labels. */
.dense-bubbles .orb-label{position:absolute;top:100%;left:50%;transform:translateX(-50%);width:max-content;max-width:130px;padding:5px 9px;margin-top:5px;border-radius:9px;background:#10141ff2;font-size:11px;opacity:0;pointer-events:none}.dense-bubbles .satellite:hover .orb-label,.dense-bubbles .satellite:focus-visible .orb-label{opacity:1}.dense-bubbles .satellite:focus-visible{z-index:5}.dense-bubbles .satellite:hover .orb{transform:scale(1.06)}.dense-bubbles .live-badge{font-size:8px;padding:2px 4px;top:-5px;right:-5px}.dense-bubbles .satellite{transition-delay:calc(var(--i)*20ms)}

.universe.dense-bubbles{margin-bottom:10px}
@media(max-width:400px){.editor .link-card-heading,.editor .links-heading{flex-wrap:wrap;gap:8px}.editor .link-tools{flex-shrink:0}.editor .accent-field{flex-wrap:wrap;min-width:0}}

.editor-feedback{flex:1;min-width:0}#editor-error{color:#ffb8bd;font-size:13px;line-height:1.45;margin:6px 0 0;overflow-wrap:anywhere}.editor-footer>.primary-button{flex-shrink:0}@media(max-width:480px){.editor-footer{flex-wrap:wrap;bottom:-18px}.editor-feedback{flex-basis:100%}.editor-footer>.primary-button{width:100%}}
.editor-footer{flex-wrap:wrap}.editor-feedback{flex-basis:100%}.editor-history{display:flex;gap:8px;margin-right:auto}.editor-history button{min-height:44px;padding:10px 14px}.editor-footer>.primary-button{min-height:44px}@media(max-width:480px){.editor-footer>.primary-button{width:auto;flex:1;padding:12px}.editor-history{gap:6px}.editor-history button{padding:10px 12px}}@media(max-width:350px){.editor-footer>.primary-button{flex-basis:100%}.editor-history{width:100%}.editor-history button{flex:1}}
.editor-exit{width:min(490px,calc(100vw - 24px));padding:24px}.editor-exit h2{font-size:22px;margin:0 0 12px}.editor-exit p{color:var(--text);font-size:14px;line-height:1.6;margin:0 0 24px}.editor-exit-actions{display:flex;gap:8px;flex-wrap:wrap}.editor-exit-actions button{min-height:44px;flex:1;padding:12px;white-space:nowrap}@media(max-width:480px){.editor-exit-actions{flex-direction:column}.editor-exit-actions button{width:100%}}

/* The profile header/footer paint to the viewport edges; only their content is inset. */
.topbar,.site-footer{margin-inline:0;width:100%;padding-inline:5%;background:var(--surface)}
.site-footer{justify-content:center}
.topbar .top-actions{gap:12px}
.topbar .profile-setup-action{font-weight:700;min-height:44px;border-color:var(--accent);white-space:nowrap}
@media(max-width:600px){
  .topbar,.site-footer{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .topbar .top-actions{gap:8px}
  .topbar .profile-setup-action{font-size:12px;padding:8px 10px}
  .site-footer{padding-bottom:max(18px,env(safe-area-inset-bottom))}
}
