body.personal-view{background:var(--cream);color:var(--red)}
body.personal-view>header{background:var(--cream);color:var(--red);padding:1.3rem clamp(1.1rem,4.5vw,5rem);gap:1rem}
body.personal-view>header .label{font-size:.62rem;letter-spacing:.16em;text-align:right}
body.personal-view>main{width:100%;max-width:none;margin:0;padding:0}
body.personal-view #vIn{width:100%;max-width:none;margin:0;padding:0}
body.personal-view>footer{background:var(--red);color:var(--cream)}
body.personal-view .preview-banner{background:var(--red);color:var(--cream);font-size:.65rem;padding:.55rem 1rem}
#vIn .personal-hero{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,6rem);padding:clamp(1.5rem,3.5vw,4rem) clamp(1.1rem,4.5vw,5rem) clamp(2.5rem,5vw,5rem);max-width:1600px;margin:auto}
#vIn .personal-intro,#vIn .personal-action{min-width:0}
#vIn .personal-headline{font-size:clamp(3.3rem,6.8vw,7rem);line-height:.88;letter-spacing:-.065em;margin:0 0 2rem}
#vIn .personal-headline span{display:block;white-space:nowrap}
#vIn .personal-member .label{font-size:.58rem;letter-spacing:.15em}
#vIn .personal-member h2{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2.4rem);line-height:1.1;letter-spacing:-.035em;font-weight:600;overflow-wrap:anywhere;margin:.35rem 0 1rem}
#vIn .personal-name-row{display:flex;align-items:center;gap:.75rem}
#vIn .personal-name-row h2{flex:1;min-width:0}
#vIn #editName{flex:none;font-size:.75rem;padding:.2rem .25rem;min-height:44px}
#vIn .personal-name-editor{border-top:1px solid rgba(200,16,46,.3);padding:1rem 0;margin-bottom:.6rem}
#vIn .personal-name-editor label{font-size:.85rem;font-weight:600}
#vIn .personal-name-editor .row{align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
#vIn .personal-name-editor input{flex:1 1 12rem;min-height:44px}
#vIn .personal-name-editor .btn{min-height:44px;letter-spacing:.08em}
#vIn #nameMsg{font-size:.8rem;line-height:1.5;margin:.4rem 0 1rem}
#vIn #nameMsg:empty{display:none}
@media(max-width:560px){#vIn .personal-name-editor input{flex-basis:100%}#vIn .personal-name-editor .btn{flex:1}}
#vIn .personal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:.85rem 0 1rem;border-top:1px solid rgba(200,16,46,.3);border-bottom:1px solid rgba(200,16,46,.3)}
#vIn .personal-stats>div{display:flex;flex-direction:column-reverse;gap:.4rem}
#vIn .personal-stats dd{font-family:var(--display);font-size:clamp(2rem,3.2vw,3rem);font-weight:700;line-height:1;letter-spacing:-.05em}
#vIn .personal-stats dt{font-size:.59rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
#vIn .personal-lede{font-size:1rem;line-height:1.5;margin:1rem 0 1.15rem;max-width:36rem}
#vIn .personal-share .label{font-size:.6rem;letter-spacing:.14em}
#vIn .personal-share .link{margin:.45rem 0 .65rem;border:0;border-bottom:1px solid rgba(200,16,46,.3);padding:.3rem 0 .55rem;font-size:.82rem;line-height:1.45}
#vIn .personal-primary{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.55rem}
#vIn .personal-primary .btn{flex:1;min-height:48px;font-size:.73rem;letter-spacing:.12em;padding:1rem .7rem}
#vIn .personal-hero .btn.solid{background:var(--red);border:1px solid var(--red);color:var(--cream)}
#vIn .personal-hero .btn.solid:hover{background:var(--red-deep);border-color:var(--red-deep)}
#vIn .personal-hero .btn.ghost{border:1px solid var(--red);color:var(--red);background:transparent}
#vIn .personal-hero .btn.ghost:hover{background:var(--red);color:var(--cream)}
#vIn .btn:disabled{cursor:default}
#vIn a[aria-disabled="true"]{opacity:.55;cursor:default}
#vIn .personal-social{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.8rem;margin-top:.35rem}
#vIn .personal-social a{font-weight:600;display:inline-flex;align-items:center;min-height:44px;text-underline-offset:3px}
#vIn .personal-social span{font-size:.72rem}
#vIn .personal-share .msg{font-size:.8rem;margin-top:0;min-height:0}
#vIn .personal-share .msg:not(:empty){margin:.35rem 0 .6rem}
#vIn .personal-dream{border-top:1px solid rgba(200,16,46,.3);margin-top:1.3rem;padding-top:1rem}
#vIn .personal-dream>.label{font-size:.6rem;letter-spacing:.15em}
#vIn .personal-dream>p{font-size:.88rem;line-height:1.5;margin:.45rem 0}
#vIn .personal-dream .personal-dream-amount{display:block;font:700 clamp(2.1rem,4.2vw,4rem)/1.1 var(--display);letter-spacing:-.045em;overflow-wrap:anywhere;margin:.5rem 0}
#vIn .personal-dream>.note{font-size:.73rem}
#vIn #retrySaleScenario{font-size:.7rem;min-height:44px;margin-top:.4rem}
#vIn .personal-money-heading .sale-network-outlook{max-width:42rem;margin-top:1.6rem;font-size:1rem;line-height:1.5}
#vIn .sale-network-outlook strong{white-space:nowrap}
#vIn .personal-account{border-top:1px solid rgba(200,16,46,.3);margin-top:1rem;font-size:.83rem}
#vIn summary{cursor:pointer;min-height:44px;padding:.85rem 0;font-weight:500}
#vIn summary:focus-visible,#vIn button:focus-visible{outline:2px solid currentColor;outline-offset:4px}
#vIn .personal-account label{display:block;margin:.6rem 0 0;font-size:.75rem}
#vIn .personal-account .row{margin-top:.3rem;align-items:center}
#vIn .personal-account .btn{letter-spacing:.08em;white-space:nowrap;min-height:44px}
#vIn .personal-account-name{margin:1rem 0 .5rem}
#vIn .personal-secondary-stats>div{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0}
#vIn .personal-secondary-stats dd{font-weight:600}
#vIn .personal-account-links{display:flex;justify-content:space-between;margin:1rem 0;gap:1rem}
#vIn .personal-account-links a{min-height:44px;display:inline-flex;align-items:center}
#vIn .personal-wheel-scene{position:relative}
#vIn #personalWheel{position:relative;min-height:340px;height:clamp(340px,34vw,520px);width:100%;isolation:isolate}
#vIn #personalWheel canvas{max-width:100%;display:block}
#vIn .wheel-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--display);font-size:clamp(1.5rem,3vw,2.6rem);font-weight:600;letter-spacing:-.04em;color:#21573c;line-height:1.1}
#vIn .personal-goal{margin:1.1rem 0 0;padding:1.4rem 0 0;border-top:1px solid rgba(200,16,46,.3)}
#vIn .personal-goal>.label{font-size:.65rem;letter-spacing:.18em}
#vIn .personal-goal>h2{font-family:var(--display);font-size:clamp(1.8rem,2.6vw,2.6rem);line-height:1.05;letter-spacing:-.04em;font-weight:600;margin:.65rem 0 .6rem}
#vIn #goalBody{font-size:.95rem;line-height:1.5}
#vIn .personal-goal-meter{margin:1rem 0 .5rem}
#vIn #goalProgress{display:block;width:100%;height:9px;border:0;background:rgba(200,16,46,.15);accent-color:var(--red);border-radius:0}
#vIn #goalProgress::-webkit-progress-bar{background:rgba(200,16,46,.15)}
#vIn #goalProgress::-webkit-progress-value{background:var(--red)}
#vIn #goalProgress::-moz-progress-bar{background:var(--red)}
#vIn #goalCount{display:block;margin-top:.6rem;font-weight:600;font-size:.8rem}
#vIn .personal-goal .note{font-size:.75rem;line-height:1.5}
#vIn #cameoRequest{margin-top:1rem}
#vIn #followCard{margin-top:1.2rem;padding:1.2rem;background:var(--cream-soft)}
#vIn #followCard h2{font-size:1.1rem;margin-bottom:.4rem}
#vIn #followCard p{font-size:.83rem;line-height:1.5}
#vIn #followCard .btn{font-size:.6rem;letter-spacing:.08em;min-height:44px}
#vIn .personal-money{background:var(--red);color:var(--cream);padding:clamp(2.5rem,6vw,6rem) 0 0;overflow:hidden}
#vIn .personal-money-heading{padding:0 clamp(1.1rem,4.5vw,5rem);max-width:1600px;margin:auto}
#vIn .personal-money-heading h2{font-size:clamp(4.1rem,10.2vw,10rem);letter-spacing:-.06em;line-height:.88;margin:1.1rem 0 1.5rem}
#vIn .personal-money-heading>p:not(.label){max-width:35rem;font-size:1rem;line-height:1.5}
#vIn .personal-money-heading .personal-money-disclaimer{font-style:italic;font-size:.8rem!important;margin-top:.65rem;opacity:.85}
#vIn .personal-network-stats{display:flex;gap:clamp(1.3rem,4vw,4rem);margin-top:1.7rem}
#vIn .personal-network-stats>div{display:flex;flex-direction:column-reverse;gap:.45rem}
#vIn .personal-network-stats dd{font-family:var(--display);font-size:clamp(1.7rem,3.2vw,3rem);font-weight:600;line-height:1}
#vIn .personal-network-stats dt{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
#vIn .personal-money-art{position:relative;width:100%;max-width:1600px;margin:1rem auto 0}
#vIn .personal-money-art>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain}
#vIn .personal-ranking{position:absolute;left:55%;top:30%;width:31%;height:21%;padding:.2rem .4rem;color:#214f37;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
#vIn .personal-ranking h3{font-size:clamp(.72rem,.95vw,.95rem);font-weight:600;display:flex;justify-content:space-between;gap:.5rem;line-height:1.2;margin-bottom:.3rem}
#vIn .personal-ranking h3 span{font-size:.7em;align-self:center;font-weight:400;white-space:nowrap}
#vIn .personal-ranking ol.lb li{gap:.5rem;padding:.27rem 0;font-size:clamp(.8rem,1.05vw,1.05rem);border-color:rgba(33,79,55,.2);line-height:1.15;align-items:center}
#vIn .personal-ranking ol.lb li::before{font-size:.7rem}
#vIn .personal-ranking ol.lb li b{font-size:1em}
#vIn .personal-ranking ol.lb li small{font-size:.65em;font-style:normal;opacity:.85}
#vIn .personal-ranking .nm{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#vIn .personal-money-support{padding:0 clamp(1.1rem,4.5vw,5rem) clamp(2rem,5vw,4rem);max-width:76rem;margin:0 auto}
#vIn .personal-money-support>.msg{margin:0;font-size:.9rem}
#vIn .personal-money-support>.note{max-width:38rem}
#vIn #retryIn{margin-top:.8rem}
#vIn .personal-pot{border-top:1px solid rgba(242,232,213,.4);margin-top:1.8rem;font-size:.9rem;line-height:1.5;max-width:44rem}
#vIn .personal-pot>p{margin-top:.7rem}
#vIn .personal-pot>a{display:inline-block;margin:1rem 0}
#vIn #pileTotIn{font-size:.75rem;letter-spacing:.06em}
@media(max-width:1100px){
  #vIn .personal-ranking{position:static;width:auto;height:auto;padding:1.2rem 0;margin:0 clamp(1.1rem,4.5vw,5rem);color:var(--cream);border-top:1px solid rgba(242,232,213,.4);overflow:visible}
  #vIn .personal-ranking h3{font-size:1.1rem;margin-bottom:.6rem}
  #vIn .personal-ranking ol.lb li{font-size:1rem;padding:.75rem 0;border-color:rgba(242,232,213,.3);gap:.7rem;min-height:44px}
  #vIn .personal-ranking ol.lb li small{font-size:.75rem}
  #vIn .personal-ranking .nm{white-space:normal;overflow-wrap:anywhere}
  #vIn .personal-money-support{margin-top:.6rem}
}
@media(max-width:760px){
  body.personal-view>header{padding:.9rem 1.1rem}
  body.personal-view>header .label{font-size:.52rem;letter-spacing:.08em}
  #vIn .personal-hero{grid-template-columns:1fr;gap:1.8rem;padding-top:1.25rem}
  #vIn .personal-headline{font-size:clamp(1.55rem,7vw,2.2rem);margin-bottom:1.2rem;line-height:1.05;letter-spacing:-.035em}
  #vIn .personal-headline span{display:inline;white-space:normal}
  #vIn .personal-member h2{font-size:1.6rem;margin-bottom:.75rem}
  #vIn .personal-member .label{font-size:.53rem}
  #vIn .personal-stats{gap:.5rem;padding:.75rem 0}
  #vIn .personal-stats dd{font-size:2rem}
  #vIn .personal-stats dt{font-size:.54rem;letter-spacing:.08em}
  #vIn .personal-lede{font-size:.9rem;margin:.8rem 0}
  #vIn .personal-primary .btn{font-size:.65rem;min-height:48px}
  #vIn .personal-social{gap:.85rem}
  #vIn .personal-social span{font-size:.68rem}
  #vIn .personal-account{margin-top:.65rem}
  #vIn #personalWheel{min-height:280px;height:clamp(280px,80vw,440px)}
  #vIn .personal-goal{margin-top:.8rem;padding-top:1.1rem}
  #vIn .personal-goal>h2{font-size:2rem}
  #vIn .personal-money-heading h2{font-size:clamp(3.8rem,15vw,7rem)}
  #vIn .personal-money-heading>p:not(.label){font-size:.9rem}
  #vIn .personal-money-heading .label{font-size:.56rem;letter-spacing:.13em}
  #vIn .personal-network-stats{justify-content:space-between;gap:.6rem}
  #vIn .personal-network-stats dt{font-size:.53rem;letter-spacing:.05em}
  #vIn .personal-money-art{margin-top:1.5rem}
  #vIn .personal-money-art>img{width:120%;max-width:none;margin-left:-10%}
  #vIn .personal-ranking h3{font-size:.95rem}
  #vIn .personal-ranking ol.lb li{gap:.5rem}
  #vIn .personal-ranking ol.lb li small{font-size:.65rem}
}
@media(prefers-reduced-motion:reduce){#vIn *,#vIn *::before,#vIn *::after{scroll-behavior:auto;transition:none;animation:none}}
