*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%;min-height:100%;min-height:100dvh}body{font-family:system-ui,Segoe UI,sans-serif;background:linear-gradient(165deg,#1a1520,#2a2235 45%,#15121a);color:#f5eef8}a{color:#c9a8ff}.shell-header{flex-shrink:0;z-index:10;display:flex;align-items:flex-start;gap:.75rem;padding:max(.75rem,env(safe-area-inset-top)) 1rem .5rem;background:linear-gradient(to bottom,#1a1520f5,#1a1520b8)}.shell-header--document{background:linear-gradient(to bottom,rgba(26,21,32,.95),transparent);padding-bottom:1rem}.shell-back{text-decoration:none;font-size:1.25rem;padding:.25rem .5rem;color:#c9a8ff;line-height:1.2}.shell-header-text{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.shell-title{font-weight:600;font-size:.95rem;line-height:1.3}.shell-header--document .shell-title{font-size:1.05rem;font-weight:700}.shell-subtitle{font-size:.78rem;opacity:.8;color:#c9a8ff;line-height:1.35}.shell-header--document .shell-subtitle{font-size:.85rem;opacity:.75;color:inherit}.shell-mini-nav{display:flex;justify-content:center;gap:.35rem;width:100%;max-width:20rem;padding:.35rem;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.shell-mini-nav-link{flex:1;min-height:40px;display:flex;align-items:center;justify-content:center;padding:.45rem .75rem;border-radius:999px;text-decoration:none;font-size:.85rem;font-weight:500;color:#f5eef8bf;transition:background .15s ease,color .15s ease}.shell-mini-nav-link--active{background:#7b5cff59;border:1px solid rgba(201,168,255,.4);color:#f5eef8;font-weight:600}.shell-mini-nav--three{max-width:24rem}.shell-mini-nav--three .shell-mini-nav-link{font-size:.78rem;padding:.4rem .45rem}.room-home .shell-mini-nav{margin-top:auto}.shell-btn{display:inline-block;padding:.65rem 1rem;border-radius:999px;background:#7b5cff;border:1px solid transparent;color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;text-align:center;cursor:pointer}.shell-btn--secondary{background:#ffffff0f;border-color:#ffffff26;color:#d9c4ff;font-weight:500}.room-bottom{flex-shrink:0;display:flex;flex-direction:column;background:#1a1520f5;border-top:1px solid rgba(255,255,255,.08)}.room-bottom .room-soul-list{border-top:none;padding-bottom:.5rem}.room-bottom .shell-mini-nav{margin:0 auto .65rem;padding-bottom:max(.35rem,env(safe-area-inset-bottom))}.tap-footer .shell-mini-nav{margin-top:.25rem}.kit-page .shell-mini-nav{margin:0 auto 1.25rem;padding-bottom:max(.5rem,env(safe-area-inset-bottom))}.room-home{min-height:100dvh;padding:max(2rem,env(safe-area-inset-top)) 1.25rem 2rem;display:flex;flex-direction:column;gap:1rem;max-width:28rem;margin:0 auto}.room-home--dashboard{gap:1.25rem;position:relative}.room-home-toast{position:fixed;top:max(1rem,env(safe-area-inset-top));left:1rem;right:1rem;z-index:20;padding:.75rem 1rem;border-radius:.75rem;background:#7b5cffeb;color:#fff;text-align:center;font-size:.9rem;font-weight:600;box-shadow:0 4px 20px #00000059;pointer-events:none}.room-home-error-block{display:flex;flex-direction:column;align-items:stretch;gap:.65rem}.room-collection-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%}.room-collection-card{display:flex;flex-direction:column;gap:.35rem;padding:.55rem;border-radius:.85rem;background:#7b5cff1a;border:1px solid rgba(201,168,255,.22);text-decoration:none;color:inherit;min-height:44px;transition:border-color .2s ease,box-shadow .2s ease}.room-collection-card:hover{border-color:#c9a8ff73}.room-collection-card--highlight{border-color:#c9a8ffa6;box-shadow:0 0 0 2px #7b5cff59;animation:collection-highlight 1.2s ease-out 2}@keyframes collection-highlight{0%,to{box-shadow:0 0 0 2px #7b5cff59}50%{box-shadow:0 0 0 4px #7b5cff8c}}.room-collection-thumb{aspect-ratio:3 / 4;border-radius:.55rem;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.room-collection-thumb--live{background:#0c0a10d9}.room-collection-thumb-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.avatar-thumb-shell{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.avatar-thumb-canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity .25s ease;pointer-events:none}.avatar-thumb-canvas--ready{opacity:1}.avatar-thumb-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:0;transition:opacity .25s ease;pointer-events:none}.avatar-thumb-image--ready{opacity:1}.room-collection-thumb-mark{font-size:1.75rem;opacity:.85;text-shadow:0 2px 12px rgba(0,0,0,.35)}.room-collection-name{font-weight:600;font-size:.9rem;line-height:1.3;padding:0 .15rem}.room-collection-meta{font-size:.75rem;opacity:.75;color:#c9a8ff;padding:0 .15rem .2rem}.room-collection-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;border-radius:.85rem;background:#ffffff0a;border:1px dashed rgba(201,168,255,.25);text-align:center}.room-collection-empty-icon{font-size:2rem;opacity:.7}.room-collection-empty-title{margin:0;font-weight:600}.room-collection-card--skeleton{pointer-events:none}.room-collection-thumb--skeleton{background:#ffffff0f;animation:collection-pulse 1.2s ease-in-out infinite}.room-collection-skeleton-line{display:block;height:.75rem;border-radius:.25rem;background:#ffffff14;animation:collection-pulse 1.2s ease-in-out infinite}.room-collection-skeleton-line--short{width:60%}@keyframes collection-pulse{0%,to{opacity:.45}50%{opacity:.9}}.room-home-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.room-home-header h1,.room-home-greeting h1{margin:0;font-size:1.35rem}.room-home-sub{margin:.25rem 0 0;font-size:.88rem;color:#c9a8ff;opacity:.9}.room-home-error{margin:0;color:#ffb4b4;font-size:.9rem}.room-lead--compact{margin:0}.room-cta--button{border:none;cursor:pointer;width:100%;font:inherit}.room-account-menu{flex-shrink:0}.room-account-avatar{width:2rem;height:2rem}.room-hint--dev{opacity:.5;font-size:.8rem}.room-hint--dev a{color:#c9a8ff}.room-lead{line-height:1.6;opacity:.9}.room-cta{display:inline-block;padding:.85rem 1.25rem;border-radius:999px;background:#7b5cff;color:#fff;text-decoration:none;font-weight:600;text-align:center}.room-cta--secondary{background:transparent;border:1px solid rgba(201,168,255,.45);color:#c9a8ff}.room-hint{font-size:.85rem;opacity:.65}.tap-page{height:100vh;height:100svh;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;position:relative;overflow:hidden}.tap-header{flex-shrink:0;z-index:10;display:flex;align-items:flex-start;gap:.75rem;padding:max(.75rem,env(safe-area-inset-top)) 1rem .5rem;background:linear-gradient(to bottom,#1a1520f5,#1a1520b8)}.tap-main{flex:1;min-height:0;display:flex;flex-direction:column}.tap-stage{flex:1;min-height:0;position:relative;overflow:hidden}.tap-header-text{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.tap-outfit-active{font-size:.78rem;opacity:.8;color:#c9a8ff}.tap-peek-label{font-size:.78rem;opacity:.75;color:#d4c4e8}.tap-toast{position:absolute;top:max(3.5rem,calc(env(safe-area-inset-top) + 2.75rem));left:1rem;right:1rem;z-index:15;padding:.75rem 1rem;border-radius:.75rem;background:#7b5cffeb;color:#fff;text-align:center;font-size:.9rem;font-weight:600;box-shadow:0 4px 20px #00000059;pointer-events:none}.tap-feed-banner{position:absolute;top:max(3.5rem,calc(env(safe-area-inset-top) + 2.75rem));left:1rem;right:1rem;z-index:14;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem .85rem;border-radius:.65rem;background:#32234bf0;border:1px solid rgba(201,168,255,.45);box-shadow:0 4px 16px #0000004d}.tap-feed-banner-link{flex:1;font-size:.84rem;font-weight:600;text-decoration:none;color:#e8d4ff}.tap-feed-banner-link:hover{text-decoration:underline}.tap-feed-banner-dismiss{flex-shrink:0;border:none;background:transparent;color:#f5eef8bf;font-size:.78rem;padding:.25rem .35rem;cursor:pointer}.tap-feed-banner-dismiss:hover{color:#f5eef8}.tap-back{text-decoration:none;font-size:1.25rem;padding:.25rem .5rem}.tap-title{font-weight:600;font-size:.95rem}.tap-loading,.tap-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center}.tap-loading-spinner{font-size:2rem;animation:tap-pulse 1.2s ease-in-out infinite}@keyframes tap-pulse{0%,to{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}.tap-footer{flex-shrink:0;padding:.65rem 1rem;padding-bottom:max(1rem,calc(env(safe-area-inset-bottom) + .75rem));background:#1a1520f5;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;gap:.5rem}.tap-footer-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;width:100%;max-width:24rem}.tap-room-cta{flex:1 1 auto;min-width:7.5rem;display:inline-block;padding:.65rem 1rem;border-radius:999px;background:#7b5cff40;border:1px solid rgba(201,168,255,.45);color:#e8dcff;text-decoration:none;font-weight:600;font-size:.9rem;text-align:center}.tap-outfits{flex-shrink:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;padding:.35rem .75rem .5rem;background:linear-gradient(to top,rgba(26,21,32,.88),transparent)}.tap-outfit-chip{border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#f5eef8;border-radius:999px;min-height:44px;padding:.55rem 1rem;font-size:.85rem;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tap-outfit-chip:disabled{opacity:.45;cursor:not-allowed}.tap-outfit-chip--active{background:#7b5cff59;border-color:#c9a8ff8c}.tap-promo-hint{margin:0;font-size:.8rem;opacity:.75;text-align:center}.tap-bind{width:100%;display:flex;flex-direction:column;align-items:center;gap:.35rem}.tap-bind-btn{border:1px solid rgba(201,168,255,.55);background:#7b5cff33;color:#e8dcff;border-radius:999px;min-height:44px;padding:.55rem 1.1rem;font-size:.88rem;font-weight:600;cursor:pointer}.tap-bind-btn:disabled{opacity:.6;cursor:not-allowed}.tap-bind-btn--secondary{background:transparent;border:1px solid rgba(201,168,255,.45)}.tap-bind-status{margin:0;font-size:.88rem;font-weight:600;color:#c9a8ff}.tap-bind-link{font-size:.82rem;color:#c9a8ff}.tap-encounter{width:100%;display:flex;flex-direction:column;align-items:center;gap:.45rem}.tap-encounter-btn{width:100%;max-width:18rem}.encounter-notebook-badge{display:inline-block;margin-right:.35rem;padding:.05rem .35rem;border-radius:999px;font-size:.68rem;font-weight:600;vertical-align:middle}.encounter-notebook-badge--saved{background:#7b5cff40;color:#d9c4ff}.encounter-notebook-badge--incoming{background:#ffffff14;border:1px dashed rgba(201,168,255,.45);color:#c9a8ff}.encounter-notebook-badge--exchange{background:#ffd68c2e;border:1px solid rgba(255,214,140,.35);color:#ffe4a8}.room-hint--notebook{margin-top:-.35rem;text-align:center}.room-home-encounters-link{align-self:center;font-size:.85rem;color:#c9a8ff;text-decoration:none}.room-home-encounters-link:hover{text-decoration:underline}.doll-info{width:100%;padding:1rem 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}.doll-info-heading{margin:0 0 .85rem;font-size:.95rem;font-weight:600;color:#f5eef8eb}.doll-info-announcements{display:flex;flex-direction:column;gap:.85rem;margin-bottom:1rem}.doll-info-announcement{padding:.75rem .85rem;border-radius:.65rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.doll-info-date{display:block;font-size:.72rem;color:#c9a8ffd9;margin-bottom:.35rem}.doll-info-announcement-title{margin:0 0 .35rem;font-size:.9rem;font-weight:600}.doll-info-announcement-body{margin:0;font-size:.82rem;line-height:1.45;opacity:.88;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.doll-info-card-grid{display:grid;grid-template-columns:1fr;gap:.65rem}@media (min-width: 360px){.doll-info-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.doll-info-card{display:flex;flex-direction:column;gap:.3rem;padding:.75rem .8rem;border-radius:.65rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);text-decoration:none;color:inherit;min-height:6.5rem;transition:border-color .15s ease,background .15s ease}a.doll-info-card:hover{border-color:#c9a8ff73;background:#ffffff14}.doll-info-card--static{opacity:.92}.doll-info-card-kind{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#c9a8ff}.doll-info-card-title{margin:0;font-size:.85rem;font-weight:600;line-height:1.3}.doll-info-card-body{margin:0;font-size:.75rem;line-height:1.4;opacity:.82;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.doll-info-card-action{margin-top:auto;font-size:.72rem;color:#c9a8ff}.doll-info-empty,.doll-info-error{margin:0;font-size:.85rem;opacity:.8}.doll-info-error{color:#ffb4b4}.doll-info-skeleton-line{height:.75rem;border-radius:.35rem;background:#ffffff14;margin-bottom:.5rem}.doll-info-skeleton-line--short{width:55%}.doll-info-card--skeleton{min-height:5.5rem;background:#ffffff0f;border-color:transparent;animation:doll-info-pulse 1.2s ease-in-out infinite}@keyframes doll-info-pulse{0%,to{opacity:.55}50%{opacity:.9}}.room-incoming{margin-top:.5rem;padding:.85rem 0;border-top:1px solid rgba(255,255,255,.08)}.room-incoming-title{margin:0 0 .5rem;font-size:.9rem;font-weight:600;color:#f5eef8e6}.room-incoming-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.35rem}.room-incoming-item{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .65rem;border-radius:.65rem;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;text-decoration:none;color:inherit}.room-incoming-name{font-size:.88rem;font-weight:600;color:#e8dcff}.room-incoming-meta{font-size:.78rem;opacity:.75}.room-today-toggle{flex-shrink:0;border:1px dashed rgba(201,168,255,.45);background:#7b5cff1f;color:#d9c4ff;border-radius:999px;padding:.35rem .6rem;font-size:.72rem;cursor:pointer;white-space:nowrap}.room-today-encounters{padding:.55rem 1rem .35rem;border-top:1px dashed rgba(201,168,255,.35);background:#7b5cff0f}.room-today-encounters-label{margin:0 0 .4rem;font-size:.72rem;font-weight:600;letter-spacing:.02em;color:#c9a8ffd9;text-transform:none}.room-today-encounters-chips{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center}.room-today-encounter-chip{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem .7rem;border-radius:.65rem;border:1px dashed rgba(201,168,255,.5);background:#ffffff0a;text-decoration:none;color:#d9c4ff;font-size:.82rem;opacity:.92}.room-today-encounter-name{font-weight:600}.room-today-encounter-time{font-size:.72rem;opacity:.75}.room-main--today-only{display:flex;align-items:center;justify-content:center}.room-today-only-hint{margin:0;font-size:.9rem;opacity:.65}.avatar-shell{flex:1;position:relative;width:100%;min-height:100dvh}.tap-page .avatar-shell{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0;height:auto}.tap-page .avatar-canvas{width:100%;height:100%;min-height:0}.tap-page .avatar-fallback{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.avatar-canvas{display:block;width:100%;height:100dvh;touch-action:manipulation}.avatar-canvas--interactive{touch-action:none}.avatar-fallback{flex:1;min-height:50dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;opacity:.85;padding:2rem 1rem}.avatar-fallback-icon{font-size:3rem}.avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1a15208c}.avatar-overlay--error{background:#3c141ebf}.room-page{height:100vh;height:100svh;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;position:relative}.room-main{flex:1;min-height:0;position:relative;overflow:hidden}.room-header{flex-shrink:0;z-index:10;display:flex;align-items:flex-start;gap:.75rem;padding:max(.75rem,env(safe-area-inset-top)) 1rem .5rem;background:linear-gradient(to bottom,#1a1520f5,#1a1520b8)}.room-header-text{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.room-title{font-weight:700;font-size:1.05rem}.room-subtitle{font-size:.85rem;opacity:.75}.room-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1.25rem;text-align:center}.room-empty .room-cta{margin-top:.25rem}.room-soul-list{flex-shrink:0;position:relative;z-index:5;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding:.65rem 1rem;padding-bottom:max(1rem,calc(env(safe-area-inset-bottom) + .75rem));background:#1a1520f5;border-top:1px solid rgba(255,255,255,.08)}.room-soul-chip{padding:.45rem .85rem;border-radius:999px;border:1px solid rgba(201,168,255,.35);color:#d9c4ff;text-decoration:none;font-size:.88rem}.parade-shell{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0;overflow:hidden}.room-page .avatar-shell{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0;height:auto}.room-page .avatar-canvas{width:100%;height:100%;min-height:0}.room-page .avatar-fallback{position:absolute;top:0;right:0;bottom:0;left:0;min-height:0}.parade-fallback-list{margin:.5rem 0 0;padding:0;list-style:none;font-size:.9rem;opacity:.85}.avatar-greeting{position:absolute;left:1rem;right:1rem;bottom:max(4.5rem,calc(env(safe-area-inset-bottom) + 3.5rem));padding:.85rem 1rem;border-radius:1rem;background:#ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12)}.tap-page .avatar-greeting{bottom:.65rem;max-height:28%;overflow-y:auto}.avatar-greeting p{margin:0;line-height:1.5;font-size:.95rem}.tap-kit-link{flex:1 1 auto;min-width:7.5rem;display:inline-block;padding:.65rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;color:#d9c4ff;text-decoration:none;font-size:.88rem;font-weight:500;text-align:center}.kit-page{min-height:100dvh;display:flex;flex-direction:column}.kit-header{display:flex;align-items:flex-start;gap:.75rem;padding:max(.75rem,env(safe-area-inset-top)) 1rem 1rem;background:linear-gradient(to bottom,rgba(26,21,32,.95),transparent)}.kit-back{text-decoration:none;font-size:1.25rem;padding:.25rem .5rem;color:#c9a8ff}.kit-header-text{min-width:0}.kit-title{margin:0;font-size:1.05rem;font-weight:700}.kit-subtitle{margin:.2rem 0 0;font-size:.85rem;opacity:.75}.kit-body{flex:1;padding:0 1.25rem 2rem;max-width:28rem;margin:0 auto;width:100%}.kit-tagline{line-height:1.6;opacity:.92;margin:0 0 1.5rem}.kit-section{margin-bottom:1.5rem;padding:1rem;border-radius:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08)}.kit-section--muted{opacity:.85}.kit-section-title{margin:0 0 .75rem;font-size:.9rem;font-weight:600;color:#c9a8ff}.kit-stats{margin:0;display:grid;gap:.65rem}.kit-stats div{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}.kit-stats dt{opacity:.7}.kit-stats dd{margin:0;font-weight:600}.kit-note{margin:.75rem 0 0;font-size:.82rem;opacity:.7}.kit-tips{margin:0;padding-left:1.1rem;line-height:1.55;font-size:.9rem}.kit-tips li+li{margin-top:.5rem}.kit-footer{display:flex;flex-direction:column;gap:.65rem;padding-top:.5rem}.kit-cta{display:block;padding:.75rem 1rem;border-radius:999px;background:#7b5cff;color:#fff;text-decoration:none;font-weight:600;text-align:center}.kit-cta--secondary{background:transparent;border:1px solid rgba(201,168,255,.45);color:#c9a8ff}.paint-page{min-height:100dvh;padding:max(.5rem,env(safe-area-inset-top)) 1rem 2rem;display:flex;flex-direction:column;gap:.75rem;max-width:32rem;margin:0 auto}.paint-page--studio{position:relative;height:100vh;height:100svh;min-height:100vh;min-height:100svh;max-width:none;width:100%;margin:0;padding:0;gap:0;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 18% 8%,rgba(232,93,138,.16),transparent 28%),linear-gradient(165deg,#1a1520,#251e2e 48%,#15121a)}.paint-page--studio *{-webkit-user-select:none;user-select:none}.paint-page--guest{padding-top:max(1.5rem,env(safe-area-inset-top))}.paint-error{margin:0;color:#ffb4b4;font-size:.88rem}.paint-studio-topbar{flex-shrink:0;z-index:8;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:.5rem;min-height:58px;padding:max(.5rem,env(safe-area-inset-top)) .75rem .5rem;background:linear-gradient(to bottom,#120e17f0,#120e176b)}.paint-studio-actions{display:flex;align-items:center;gap:.35rem}.paint-history-btn{min-height:40px;padding:.4rem .55rem;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:#ffffff0f;color:#f5eef8e0;font:inherit;font-size:.74rem;font-weight:700;cursor:pointer}.paint-studio-back{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:#f5eef8;font-size:1.75rem;line-height:1;text-decoration:none}.paint-studio-title{min-width:0;display:flex;flex-direction:column;gap:.1rem}.paint-studio-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:700}.paint-studio-title small{font-size:.72rem;color:#c9a8ffd1}.paint-studio-save{min-height:40px;padding:.45rem .85rem;border:1px solid rgba(232,93,138,.48);border-radius:999px;background:#e85d8a42;color:#fff;font:inherit;font-size:.84rem;font-weight:700;cursor:pointer}.paint-studio-save:disabled{opacity:.48;cursor:not-allowed}.paint-studio-banner{position:absolute;top:max(3.75rem,calc(env(safe-area-inset-top) + 3rem));left:.75rem;right:.75rem;z-index:12;padding:.65rem .75rem;border:1px solid rgba(255,180,180,.26);border-radius:.6rem;background:#2d121ae6;box-shadow:0 10px 22px #00000047}.paint-studio-stage{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;padding:0 .65rem calc(5.25rem + env(safe-area-inset-bottom))}.paint-part-tabs{display:flex;gap:.35rem}.paint-part-switcher{z-index:5;display:flex;gap:.35rem;width:min(100%,28rem);margin:0 auto;padding:.35rem 0 .4rem}.paint-part-tab{flex:1;min-height:36px;padding:.45rem .5rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:inherit;font-size:.82rem;cursor:pointer}.paint-part-tab--active{border-color:#c9a8ff8c;background:#7b5cff40}.paint-viewport{position:relative;width:100%;min-width:0;aspect-ratio:3 / 4;min-height:280px;border-radius:.75rem;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#00000040;touch-action:none}.paint-page--studio .paint-viewport{flex:1;min-height:0;height:auto;aspect-ratio:auto;border-radius:.65rem;border-color:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff08}.paint-viewport .avatar-shell{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:0;flex:none}.paint-viewport .avatar-canvas{width:100%;height:100%;min-height:0;max-height:100%}.paint-viewport--orbit .avatar-canvas{pointer-events:auto}.paint-viewport--paint .avatar-canvas{pointer-events:none}.paint-input-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;touch-action:none;cursor:none}.paint-brush-cursor{position:absolute;z-index:3;background:transparent;border:1.5px solid #e85d8a;border-radius:50%;box-shadow:0 0 0 1px #0000007a,inset 0 0 0 1px #ffffff47;pointer-events:none;transform:translate(-50%,-50%)}.paint-brush-cursor--transparent{border-color:#f5eef8e6;border-style:dashed}.paint-brush-cursor--transparent:after{content:"";position:absolute;right:-5px;bottom:-5px;width:7px;height:7px;border:1px solid rgba(245,238,248,.95);border-radius:50%;background:#100c14b8;box-shadow:0 0 0 1px #00000061}.paint-orbit-gizmo{position:absolute;top:auto;right:auto;bottom:.85rem;left:50%;z-index:4;width:52px;height:52px;padding:0;border:1px solid rgba(245,238,248,.32);border-radius:50%;background:#100c147a;box-shadow:0 8px 18px #00000047;cursor:grab;touch-action:none;translate:-50% 0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.paint-orbit-gizmo:active,.paint-orbit-gizmo--active{cursor:grabbing;border-color:#e85d8ac7;background:#100c14a8}.paint-orbit-gizmo-ring,.paint-orbit-gizmo-stick{position:absolute;pointer-events:none}.paint-orbit-gizmo-ring{top:9px;right:9px;bottom:9px;left:9px;border:1px dashed rgba(245,238,248,.46);border-radius:50%}.paint-orbit-gizmo-ring:before,.paint-orbit-gizmo-ring:after{content:"";position:absolute;background:#f5eef85c}.paint-orbit-gizmo-ring:before{top:50%;left:7px;right:7px;height:1px}.paint-orbit-gizmo-ring:after{top:7px;bottom:7px;left:50%;width:1px}.paint-orbit-gizmo-stick{top:50%;left:50%;width:12px;height:12px;border:2px solid rgba(245,238,248,.92);border-radius:50%;background:#100c14cc;box-shadow:0 0 0 1px #0000006b;transform:translate(0);translate:-50% -50%;transition:transform .06s linear}.paint-mode-toggle{display:inline-flex;border-radius:.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.12)}.paint-mode-btn{padding:.35rem .65rem;font-size:.78rem;background:#ffffff0a;color:#f5eef8cc;border:none;cursor:pointer}.paint-mode-btn--active{background:#e85d8a59;color:#fff}.paint-work-mode{min-height:32px;display:inline-flex;align-items:center;padding:.35rem .65rem;border-radius:.5rem;background:#e85d8a38;color:#f5eef8;font-size:.78rem;font-weight:700}.paint-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0}.paint-control-layer{position:absolute;left:0;right:0;bottom:0;z-index:10;display:flex;flex-direction:column;gap:.45rem;padding:0 .65rem max(.65rem,env(safe-area-inset-bottom));pointer-events:none}.paint-quick-dock,.paint-tool-sheet{pointer-events:auto}.paint-quick-dock{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:.35rem;align-items:stretch;width:100%;max-width:42rem;margin:0 auto;padding:.4rem;border:1px solid rgba(255,255,255,.12);border-radius:.85rem;background:#120e17e6;box-shadow:0 12px 28px #00000057;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.paint-primary-controls{min-width:0;display:grid;grid-template-columns:44px 44px minmax(6rem,1fr) minmax(6rem,1fr);gap:.35rem;align-items:stretch}.paint-dock-btn{min-width:0;min-height:44px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.35rem .45rem;border:1px solid rgba(255,255,255,.13);border-radius:.6rem;background:#ffffff0f;color:#f5eef8;font:inherit;font-size:.75rem;font-weight:700;line-height:1.15;cursor:pointer}.paint-dock-btn:disabled{opacity:.45;cursor:not-allowed}.paint-dock-btn--wide{align-items:flex-start;padding-left:.6rem}.paint-dock-btn-kicker{display:block;color:#c9a8ffc7;font-size:.66rem;font-weight:600}.paint-dock-btn--active{border-color:#e85d8a9e;background:#e85d8a3d}.paint-dock-btn--primary{border-color:#e85d8a8a;background:#e85d8a57}.paint-color-gesture{position:relative;min-width:0}.paint-color-chip{position:relative;width:100%;min-height:44px;display:block;padding:0;border:1px solid rgba(255,255,255,.13);border-radius:.6rem;background:linear-gradient(45deg,rgba(255,255,255,.12) 25%,transparent 25%),linear-gradient(-45deg,rgba(255,255,255,.12) 25%,transparent 25%),#ffffff0d;background-size:12px 12px;overflow:hidden;cursor:pointer;touch-action:none}.paint-color-chip span{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(245,238,248,.44);border-radius:50%}.paint-desktop-color-picker{display:none}.paint-color-popover{position:absolute;left:0;bottom:calc(100% + .65rem);z-index:30;width:min(72vw,220px);padding:.65rem;border:1px solid rgba(255,255,255,.16);border-radius:.85rem;background:#120e17f5;box-shadow:0 14px 34px #0006;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.paint-color-plane{position:relative;height:128px;border-radius:.65rem;background:linear-gradient(to right,#ff3b3b,#ffe13b,#49e85d,#41d9ff,#5c6cff,#f05cff,#ff3b3b);overflow:hidden;touch-action:none}.paint-color-plane:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.paint-color-plane:after{background:linear-gradient(to top,#000,#0000)}.paint-color-plane-cursor{position:absolute;z-index:2;width:14px;height:14px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #000000b3;transform:translate(-50%,-50%)}.paint-hue-slider{display:flex;align-items:center;gap:.5rem;margin-top:.55rem;font-size:.72rem;color:#f5eef8bd}.paint-hue-slider input{flex:1}.paint-mini-slider{min-width:0;min-height:44px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;align-items:center;column-gap:.35rem;padding:.35rem .45rem;border:1px solid rgba(255,255,255,.13);border-radius:.6rem;background:#ffffff0f}.paint-mini-slider span,.paint-mini-slider output{min-width:0;overflow:hidden;text-overflow:clip;white-space:nowrap;font-size:.62rem;color:#f5eef8b8}.paint-mini-slider output{color:#f5eef8;font-weight:700}.paint-mini-slider input{grid-column:1 / -1;width:100%;min-width:0}.paint-tool-sheet{width:100%;max-width:42rem;max-height:min(48svh,23rem);margin:0 auto;border:1px solid rgba(255,255,255,.12);border-radius:.9rem .9rem .65rem .65rem;background:#120e17f5;box-shadow:0 -12px 30px #0000005c;overflow:hidden;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.paint-tool-sheet-header{display:flex;align-items:center;gap:.45rem;padding:.55rem;border-bottom:1px solid rgba(255,255,255,.08)}.paint-tool-sheet-header .paint-mode-toggle{flex:1}.paint-tool-sheet-header .paint-mode-btn{flex:1;min-height:36px;padding-inline:.35rem}.paint-sheet-close{flex-shrink:0;width:36px;min-height:36px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0f;color:#f5eef8;font-size:1.1rem;cursor:pointer}.paint-tool-sheet-body{max-height:calc(min(48svh,23rem) - 3.5rem);overflow-y:auto;padding:.65rem}.paint-sheet-panel{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.paint-sheet-panel .paint-toolbar-field--slider{flex:1 1 100%;min-width:0}.paint-sheet-panel .paint-toolbar-field--slider span{min-width:5.6rem}.paint-sheet-panel .paint-toolbar-field input[type=range]{flex:1;width:auto}.paint-sheet-panel--actions,.paint-sheet-panel--advanced{align-items:stretch}.paint-sheet-panel--actions>*{flex:1 1 8rem}.paint-debug-link{min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:.45rem .75rem;border:1px solid rgba(201,168,255,.34);border-radius:.55rem;color:#d9c4ff;text-decoration:none;font-size:.82rem;font-weight:700}@media (max-width: 380px){.paint-studio-stage,.paint-control-layer{padding-inline:.45rem}.paint-quick-dock{grid-template-columns:minmax(0,1fr) 50px;gap:.25rem}.paint-primary-controls{grid-template-columns:40px 40px minmax(4.8rem,1fr) minmax(4.8rem,1fr);gap:.25rem}.paint-dock-btn{padding-inline:.25rem;font-size:.7rem}.paint-mini-slider{padding-inline:.3rem}.paint-mini-slider span{display:none}}@media (min-width: 900px){.paint-page--studio{padding-right:20rem}.paint-studio-topbar{padding-right:21rem}.paint-studio-stage{padding:0 1rem 1rem}.paint-part-switcher{width:min(28rem,100%)}.paint-control-layer{top:max(4.75rem,calc(env(safe-area-inset-top) + 4rem));right:1rem;bottom:1rem;left:auto;width:18rem;padding:0}.paint-orbit-gizmo{top:.75rem;right:.75rem;bottom:auto;left:auto;translate:none}.paint-quick-dock{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.paint-primary-controls,.paint-dock-btn--primary{grid-column:span 2}.paint-primary-controls{grid-template-columns:1fr 1fr;padding:.6rem;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;background:#ffffff0a}.paint-color-gesture{grid-column:span 2;display:grid;grid-template-columns:52px minmax(0,1fr);gap:.55rem;align-items:stretch}.paint-desktop-color-picker{display:flex;flex-direction:column;gap:.5rem;padding:.45rem .6rem;border:1px solid rgba(255,255,255,.13);border-radius:.65rem;background:#ffffff0d}.paint-color-plane--desktop{height:142px;border:1px solid rgba(255,255,255,.12)}.paint-color-chip{min-height:52px}.paint-hue-slider--desktop{margin-top:0}.paint-transparent-btn{min-height:48px}.paint-mini-slider{grid-column:span 2;min-height:58px;padding:.5rem .6rem}.paint-mini-slider span,.paint-mini-slider output{font-size:.74rem}.paint-tool-sheet{max-height:none;flex:1;max-width:none;margin:0;border-radius:.85rem}.paint-tool-sheet-body{max-height:none}}.paint-toolbar{display:flex;flex-wrap:wrap;align-items:stretch;gap:.65rem}.paint-toolbar--workbench{padding:.65rem;border:1px solid rgba(255,255,255,.09);border-radius:.75rem;background:#0e0b1270}.paint-tool-panel{display:flex;flex-direction:column;gap:.4rem;min-width:max-content;padding:.5rem;border:1px solid rgba(255,255,255,.08);border-radius:.6rem;background:#ffffff09}.paint-tool-panel-label{font-size:.68rem;font-weight:700;letter-spacing:0;color:#f5eef894}.paint-tool-panel-body{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.paint-toolbar-actions{display:flex;flex-wrap:wrap;align-items:end;gap:.5rem;margin-left:auto}.paint-toolbar-field{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:#f5eef8d9}.paint-toolbar-field--slider{min-width:9.5rem}.paint-toolbar-field--slider span{min-width:4.8rem}.paint-toolbar-field input[type=range]{width:6.5rem}.paint-hint{text-align:center}.paint-debug-page .paint-hint code{font-size:.75rem;opacity:.85}.paint-page.paint-debug-page{max-width:min(960px,100%);scrollbar-gutter:stable}.paint-debug-shell{display:grid;grid-template-columns:306px minmax(0,1fr);gap:.75rem;align-items:start}.paint-debug-stage{position:sticky;top:max(.5rem,env(safe-area-inset-top));display:flex;flex-direction:column;gap:.5rem;width:306px;flex-shrink:0}.paint-debug-stage-modes{display:flex;justify-content:center}.paint-debug-viewport--fixed{width:306px;height:409px;min-height:409px;max-height:409px;aspect-ratio:unset;flex-shrink:0;border:none;outline:1px solid rgba(255,255,255,.1);outline-offset:0}.paint-debug-stage-previews{display:flex;flex-direction:column;gap:.5rem;width:306px}.paint-debug-panel{min-width:0;max-height:calc(100dvh - 7rem);overflow-y:auto;overscroll-behavior:contain;padding-right:.15rem}.paint-debug-action-hint{flex:1 1 100%;min-height:2.4em;margin:0;font-size:.72rem;line-height:1.35;opacity:.85}.paint-debug-step-detail--clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.paint-debug-diagnose{margin-top:.5rem;padding:.55rem .65rem;border-radius:.55rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08)}@media (max-width: 720px){.paint-debug-shell{grid-template-columns:1fr}.paint-debug-stage{position:static;width:100%;max-width:306px;margin:0 auto}.paint-debug-stage-previews{width:100%;max-width:306px;margin:0 auto}.paint-debug-panel{max-height:none}}.paint-debug-steps{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.45rem}.paint-debug-step{display:flex;gap:.55rem;align-items:flex-start;padding:.55rem .65rem;border-radius:.55rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);font-size:.82rem}.paint-debug-step--pass{border-color:#78dca073;background:#28785026}.paint-debug-step--fail{border-color:#ff787880;background:#78282833}.paint-debug-step-icon{font-weight:700;min-width:1rem}.paint-debug-step-detail{margin:.2rem 0 0;font-size:.74rem;opacity:.85;word-break:break-all}.paint-debug-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.65rem}.paint-debug-workspace{display:grid;grid-template-columns:1fr min(160px,28vw);gap:.65rem;align-items:start}.paint-debug-workspace .paint-debug-2d+.paint-debug-2d{margin-top:.5rem}.paint-debug-repro{margin-top:.45rem;font-size:.75rem}.paint-debug-repro-steps{margin:.35rem 0 0;padding-left:1.2rem;opacity:.85}.paint-kit-integrity-banner{border-left:3px solid #e8a838}@media (max-width: 640px){.paint-debug-workspace{grid-template-columns:1fr}}.paint-debug-viewport{min-height:320px;min-width:0}.paint-debug-2d{border-radius:.55rem;border:1px solid rgba(255,255,255,.1);background:#00000059;padding:.45rem}.paint-debug-2d-label{margin:0 0 .35rem;font-size:.72rem;opacity:.8}.paint-debug-2d-img{display:block;width:100%;height:auto;image-rendering:pixelated}.paint-debug-2d-empty{margin:0;font-size:.75rem;opacity:.6}.paint-debug-part-tabs{display:flex;gap:.35rem;margin-bottom:.65rem}.paint-debug-kit-meta{margin-bottom:.85rem;padding:.65rem .75rem;border-radius:.5rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.paint-debug-kit-meta--warn{border-color:#ffb45073;background:#ff8c2814}.paint-debug-kit-meta-title{margin:0 0 .4rem;font-size:.85rem;font-weight:600}.paint-debug-kit-meta-line{margin:.2rem 0 0;font-size:.72rem;line-height:1.45;word-break:break-all}.paint-debug-kit-meta-line code{font-family:ui-monospace,monospace}.paint-debug-kit-meta-line--warn{color:#ffb454}.works-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.works-list-link{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .85rem;border-radius:.65rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);text-decoration:none;color:inherit}.works-list-name{font-weight:600;font-size:.92rem}.works-list-meta{font-size:.75rem;opacity:.75}.work-preview-stage{position:relative;width:100%;aspect-ratio:3 / 4;min-height:240px;border-radius:.75rem;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.work-preview-stage .avatar-shell{position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.works-part-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.works-part-item{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem}.works-part-status{font-size:.75rem;color:#a8e6a3}.works-part-status--empty{color:#f5eef880}.paint-delete-btn{align-self:flex-start;border:none;background:transparent;color:#ff9696d9;font-size:.8rem;cursor:pointer;padding:.25rem 0}
