/* Complete UI subset: avoids mixed CJK fallback baselines in a single label. */
@font-face{font-family:'Planet Serif';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/planet-ui-v5.woff2') format('woff2')}
@font-face{font-family:'DreamSerif';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/planet-ui-v5.woff2') format('woff2')}
/* Shared identity and chrome, matched to the approved desktop/home and phone/system boards. */
:root{--chrome-ink:#edddc2;--chrome-dim:#b9af9f;--chrome-line:#dfc49c66}
.ip-logo{display:block;width:34px;height:34px;flex:0 0 auto;object-fit:contain}
#home-ui .brand,.planet-brand,#quiz .quiz-brand,.collection-brand{display:flex;align-items:center;gap:12px;color:var(--chrome-ink)}
#home-ui header{padding:24px 32px;gap:24px}
#home-ui .brand{font-size:26px;letter-spacing:.09em;padding:4px 0;cursor:pointer}
#home-ui .brand .ip-logo{width:42px;height:42px}
#home-ui .home-tools{margin-left:auto;display:flex;align-items:center;gap:24px;pointer-events:auto;font:15px/1.4 'Planet Serif',serif;letter-spacing:.06em}
#home-ui .home-tools a,#home-ui .home-tools button{min-height:44px;box-sizing:border-box;color:var(--chrome-ink);background:none;border:0;box-shadow:none;cursor:pointer}
#home-ui .new{margin:0;padding:8px 0;font:inherit;letter-spacing:inherit;display:flex;align-items:center;gap:8px;border-radius:0}
#home-ui .new:hover,#home-ui .new:focus-visible{background:none;color:#fff1d6}
#home-ui .new .chevron{display:none;width:16px;height:16px;stroke:currentColor;stroke-width:1.4}
#home-manage{padding:8px 0;font:inherit;letter-spacing:inherit;position:relative}
#home-ui .sound-toggle{padding:9px;width:44px;height:44px;display:grid;place-items:center;position:relative}
#home-ui .sound-toggle:before,#home-manage:before{content:'';position:absolute;left:-12px;top:14px;bottom:14px;border-left:1px solid #cbb89544}
.sound-toggle svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.sound-toggle .sound-slash{display:none}.sound-toggle[aria-pressed=true] .sound-waves{display:none}.sound-toggle[aria-pressed=true] .sound-slash{display:block}
#home-ui nav{right:40px;align-items:flex-start;font:17px/1.5 'Planet Serif',serif;color:var(--chrome-dim)}
#home-ui nav button{flex-direction:row-reverse;justify-content:flex-end;min-height:64px;font:inherit;gap:14px;letter-spacing:.06em}
#home-ui nav i{width:11px;height:11px;border-color:#d9bd9390}
#home-ui nav button+button:before{left:5px;right:auto;bottom:calc(50% + 7px);height:50px;border-color:#d9bd9355}
#home-ui nav button[aria-current=true]{color:var(--chrome-ink)}
#home-ui nav button[aria-current=true] i{background:#dfbd8755;border:2px solid #eacb9e;box-shadow:0 0 12px #e5b87566}
#home-mark{display:block;width:44px;height:44px;min-height:44px;translate:none!important;overflow:visible}
#home-mark i,#home-mark[data-flip=true] i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;margin:0;background:#fff1d6;box-shadow:0 0 10px 2px #ffd5a3,0 0 24px 6px #efbb7355}
#home-mark i:before{inset:-12px;animation:beacon-breathe 3.4s ease-in-out infinite;border:1px solid #ffe0adbb}
#home-mark i:after{display:none}
#home-mark span,#home-mark[data-flip=true] span{position:absolute;left:0;top:0;width:max-content;max-width:280px;margin:0;transform:translate(var(--callout-x,34px),var(--callout-y,20px));text-align:left;gap:7px;white-space:nowrap}
#home-mark b{font:18px/1.4 'Planet Serif',serif;letter-spacing:.06em}
#home-mark small{font:13px/1.4 'Planet Serif',serif;color:#c4baa9;letter-spacing:.03em}
@keyframes beacon-breathe{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}
body:has(#home-ui.on:not(.first-visit)) #hint{opacity:.75;left:40px;bottom:32px;text-align:left;font:14px/1.5 'Planet Serif',serif;letter-spacing:.06em;color:#d5c4a9}
#hint:before{content:'';display:inline-block;vertical-align:middle;width:22px;height:28px;margin-right:12px;background:currentColor;mask:url('/ui-assets/drag-hand.svg') center/contain no-repeat}
#home-management{position:fixed;inset:0;width:min(390px,calc(100vw - 64px));padding:32px;background:#0c111ceF;border:1px solid #d4ba8d44;border-radius:12px;color:var(--chrome-ink);font:15px/1.7 'Planet Serif',serif;box-shadow:0 16px 70px #0008}
#home-management::backdrop{background:#02050b88;backdrop-filter:blur(6px)}
#home-management .close-dialog{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;background:none;color:inherit;font:25px/1 sans-serif;cursor:pointer}
#home-management h2{font-size:24px;font-weight:400;margin:0 0 24px}
#home-management>a,#home-management>button{display:flex;align-items:center;justify-content:space-between;min-height:48px;width:100%;padding:8px 0;border:0;background:none;color:inherit;text-decoration:none;font:inherit;cursor:pointer;text-align:left}
#home-management p,#management .world-note{font:12px/1.8 'PingFang SC',sans-serif;color:#bbb4a7;margin:22px 0 0}
#quiz .quiz-brand{gap:9px}#quiz .quiz-brand .ip-logo{width:27px;height:27px}
.planet-brand{gap:12px}.planet-brand .ip-logo{width:32px;height:32px}
.collection-brand{position:absolute;z-index:4;top:24px;left:32px;font:20px 'Planet Serif','Songti SC',serif;letter-spacing:.1em;text-decoration:none}
#universe header .back{color:var(--chrome-ink);gap:10px}
#universe header .back .ip-logo{width:34px;height:34px}
#universe .more-icon{display:none;width:24px;height:24px;fill:currentColor}
#universe #new-planet svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.4}
#universe #new-planet .new-mobile{display:none}
@media(max-width:900px) and (orientation:portrait){
 .ip-logo{width:25px;height:25px}
 #home-ui header{padding:max(24px,env(safe-area-inset-top)) 20px;gap:12px;align-items:center}
 #home-ui .brand{font-size:19px;letter-spacing:.06em;gap:8px;white-space:nowrap}
 #home-ui .brand .ip-logo{width:27px;height:27px}
 #home-ui .home-tools{gap:12px;font-size:13px;letter-spacing:.02em}
 #home-ui .new{order:2;min-height:44px;gap:3px;white-space:nowrap}
 #home-ui .new .chevron{display:block}
 #home-ui .home-tools .sound-toggle{order:1;width:40px;height:40px;min-height:40px;padding:7px;border:1px solid #d6c39b40;border-radius:50%}
 #home-ui .sound-toggle svg{width:22px;height:22px}
 #home-ui .sound-toggle:before,#home-manage{display:none}
 #home-ui nav{left:26px;right:26px;bottom:max(24px,env(safe-area-inset-bottom));top:auto;transform:none;display:flex;flex-direction:row;justify-content:space-between;align-items:stretch;gap:0;font:16px/1.5 'Planet Serif',serif}
 #home-ui nav button{flex:1;min-height:62px;flex-direction:column;justify-content:flex-start;gap:9px;padding:0 2px 16px;letter-spacing:.09em}
 #home-ui nav button+button:before{display:block;top:3px;bottom:auto;left:0;height:18px;border-left:1px solid #dac4a144;border-right:0}
 #home-ui nav i,#home-ui nav button[aria-current=true] i{width:3px;height:3px;background:#c6bba9;border:0;box-shadow:none}
 #home-ui nav button[aria-current=true] i{background:#fff0d4;width:4px;height:4px}
 #home-ui nav button:after{content:'';position:absolute;bottom:0;left:calc(50% - 24px);width:48px;height:2px;background:linear-gradient(90deg,transparent,#f6e2bd 25%,#f6e2bd 75%,transparent);opacity:0}
 #home-ui nav button[aria-current=true]:after{opacity:1}
 #home-mark b{font-size:16px}#home-mark small{font-size:12px}#home-mark span{gap:5px;max-width:calc(100vw - 40px)}
 #home-mark i:before{inset:-10px}
 body:has(#home-ui.on:not(.first-visit)) #hint{display:none}
 #quiz .quiz-brand{gap:8px}#quiz .quiz-brand .ip-logo{width:23px;height:23px}
 .planet-brand{top:max(24px,env(safe-area-inset-top));left:22px;gap:8px;font-size:18px}.planet-brand .ip-logo{width:26px;height:26px}
 .collection-brand{top:22px;left:22px;font-size:18px;gap:8px}.collection-brand .ip-logo{width:26px;height:26px}
 #universe header{padding:max(20px,env(safe-area-inset-top)) 20px;gap:8px}
 #universe header .back{font-size:18px;letter-spacing:.06em;gap:8px;white-space:nowrap}#universe header .back .ip-logo{width:27px;height:27px}
 #universe .header-tools{gap:12px;max-width:none}
 #universe #new-planet{font:14px/1.4 'Planet Serif',serif;background:none;color:var(--chrome-ink);padding:8px 0;border:0;border-radius:0;box-shadow:none;gap:6px}
 #universe #new-planet .new-mobile{display:inline}#universe #new-planet .new-desktop{display:none}
 #universe #manage{width:32px;min-width:32px;height:44px;padding:4px;color:var(--chrome-ink)}#universe #manage>span{display:none}#universe .more-icon{display:block}
 #universe #page-name{top:84px;left:22px;color:var(--chrome-ink);font:16px/1.5 'Planet Serif',serif;letter-spacing:.15em}
 #universe #page-name:after{content:'';display:block;width:24px;height:2px;margin-top:8px;background:linear-gradient(90deg,#f2dab1,transparent)}
 #universe #message{top:120px;left:22px}
 #universe .planet-label{font-size:14px;letter-spacing:.03em;color:#f5e6cc}
 #universe footer{width:calc(100vw - 32px);max-width:none;min-height:108px;bottom:max(10px,env(safe-area-inset-bottom));padding:0;gap:0;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;align-items:center}
 #universe footer:before{content:"";display:block;position:absolute;inset:-60px -24px -20px;height:auto;z-index:-1;background:linear-gradient(0deg,#030713c9 0%,#03071380 50%,transparent);pointer-events:none}
 #universe #directory{height:108px;flex:1;margin:0;padding:10px 5px 6px;gap:6px;scroll-padding-inline:6px;scroll-snap-type:x proximity}
 #universe #directory button{flex-basis:64px;width:64px;min-height:88px;height:88px;padding:0;gap:7px;justify-content:flex-start;align-items:center;overflow:visible}
 #universe #directory img,#universe #directory button:hover img,#universe #directory button[aria-pressed=true] img{width:46px;height:46px;transform:scale(1);transform-origin:50% 50%;outline:1px solid #d4bd9244;outline-offset:3px}
 #universe #directory button[data-active=true] img{transform:scale(1.14);outline-color:#f2d7a4;filter:drop-shadow(0 0 5px #e7bd7355)}
 #universe #directory button span{font:13px/1.5 'Planet Name','Planet Serif',serif;height:20px;width:64px;margin-top:3px;color:#f1dfbf;white-space:nowrap}
 #universe #directory button:after{content:'';display:block;position:absolute;bottom:3px;left:calc(50% - 16px);width:32px;height:2px;border:0;border-radius:0;transform:none;background:linear-gradient(90deg,#f2dcb5,transparent);opacity:0}
 #universe #directory button[data-active=true]:after{opacity:1}
 #universe #overview{min-width:54px;width:54px;min-height:56px;height:56px;padding:0 0 0 10px;margin:0 0 26px 4px;border-left:1px solid #dbc39b33;gap:0}
 #universe #overview svg{box-sizing:content-box;width:24px;height:24px;padding:9px;border:1px solid #dcc49b66;border-radius:50%;color:#f1d5a6}
 #universe #overview span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #universe #scale-rail{top:auto;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 122px);left:24px;right:24px;transform:none;flex-direction:row;align-items:center;justify-content:space-between;gap:18px;font:13px/1.5 'Planet Serif',serif;color:#a99f93}
 #universe #scale-rail:after{display:none}
 #universe #scale-rail button{min-height:44px;flex:1;padding:4px 0;justify-content:center;gap:0;letter-spacing:.09em;font:inherit;white-space:nowrap;border:1px solid transparent;border-radius:24px}
 #universe #scale-rail button+button:before{display:block;position:absolute;width:12px;height:1px;left:-16px;right:auto;top:50%;bottom:auto;border:0;background:#d1b99544}
 #universe #scale-rail i{display:none}
 #universe #scale-rail button[aria-current=true]{border-color:#e6c99b77;background:#c7b5aa18;color:#f5deba}
 #universe #scale-rail button[aria-current=true] i{display:block;position:absolute;top:-4px;left:calc(50% - 3px);width:6px;height:6px;margin:0;border:0;background:#f1d2a1;box-shadow:0 0 9px #ffd9a17a}
 body:not([data-close=true]) #universe .scene-tools{display:none}
 #universe #detail{bottom:126px}
 #universe #management{z-index:5;padding:26px 22px;background:#0a101bf5;border:1px solid #d4ba8d44;border-radius:12px}
}
@media(prefers-reduced-motion:reduce){#home-mark i:before{animation:none}}
@media(max-width:370px) and (orientation:portrait){#home-ui header{padding-inline:16px;gap:8px}#home-ui .brand{font-size:17px;gap:6px}#home-ui .brand .ip-logo{width:23px;height:23px}#home-ui .home-tools{gap:8px;font-size:12px}#universe header{padding-inline:16px}#universe header .back{font-size:17px;gap:6px}#universe .header-tools{gap:8px}#universe #directory button{flex-basis:60px;width:60px}#universe #directory button span{width:60px}}

.ip-brand .ip-logo{width:34px;height:34px;flex:none}.ip-brand{color:var(--chrome-ink)}

#home-ui.first-visit .new,#home-ui.first-visit nav{display:flex}#home-ui nav button:disabled{opacity:.38;cursor:default}

.ul-brand{display:flex;align-items:center;gap:9px;margin:0 44px 24px 0;color:var(--chrome-ink);font:18px/1.4 "Planet Serif","Songti SC",serif;letter-spacing:.08em}.ul-brand .ip-logo{width:26px;height:26px}

/* Keep generated names in the complete, on-demand family; ordinary UI uses the compact subset. */
#universe #detail>*{flex-shrink:0}
#universe #detail .planet-heading{align-items:baseline}
#home-mark b,#home-mark small{font-weight:400;font-synthesis:none}
#universe #unlocks button{font-family:'Planet Serif','Songti SC',serif}
#home-mark:after{content:'';position:absolute;inset:-22px;pointer-events:auto}
@media(max-width:900px) and (orientation:portrait){
 #universe #scale-rail button{border:0;border-radius:0;background:none;isolation:isolate}
 #universe #scale-rail button[aria-current=true]{background:none}
 #universe #scale-rail button[aria-current=true]:after{content:'';position:absolute;inset:7px -2px;border:1px solid #e6c99b77;border-radius:20px;background:#c7b5aa18;z-index:-1}
 #universe #scale-rail button[aria-current=true] i{top:4px;width:5px;height:5px}
}

/* Desktop chrome stays quiet; phone retains its compact overflow menu. */
#home-ui #home-manage{display:none}
@media(min-width:901px),(orientation:landscape){#universe #manage{display:none}}
