/* Page changes keep the viewport geometry; finished screens slide sideways. */
#wipe{display:none!important}
::view-transition-group(root){animation:none}
::view-transition-old(root){animation:screen-out .22s ease both;mix-blend-mode:normal}
::view-transition-new(root){animation:screen-in .22s ease-out both;mix-blend-mode:normal}
::view-transition{pointer-events:none}
/* Keep both snapshots nearly opaque so PC Chromium does not flash a blank frame. */
@keyframes screen-in{from{opacity:.96;transform:translateX(18px)}to{opacity:1;transform:none}}
@keyframes screen-out{to{opacity:.96;transform:translateX(-12px)}}
.shelf,.shelf-card.library,.fc-column{animation:none}
.board.enter{animation:question-in .16s ease-out}
@keyframes question-in{from{opacity:.92;transform:translateX(16px)}to{opacity:1;transform:none}}
.view.screen-slide{animation:screen-in .22s ease-out both}
/* Long resume labels may shorten; the logo and controls never squash. */
body .hud{flex-wrap:nowrap;gap:8px;align-items:center}
body .hud .logo{flex:0 0 auto;white-space:nowrap;max-width:none}
body .hud .logo i{flex:0 0 auto}
body .hud .logo span{white-space:nowrap}
body .hud .pill{flex:0 0 auto;min-height:44px}
body .hud .pill.cont{flex:0 1 200px;min-width:76px;min-height:44px;animation:none;overflow:hidden}
body .hud .pill.cont i{flex:none}
body .hud .pill.cont span{min-width:0;flex:1}
/* Invisible but still occupying space — avoids a sideways HUD jump when resume appears. */
body .hud .pill.cont.is-idle{visibility:hidden;pointer-events:none;flex:0 0 76px;max-width:76px;min-width:76px}
body .hud .language-control{flex:none}
@media(max-width:1200px){
 body .hud{gap:5px}
 body .hud .pill{padding-inline:9px;font-size:14px}
 body .hud .logo{padding-inline:4px 10px}
 body .hud .logo span{font-size:18px}
 body .hud #soundBtn span{display:none}
 body .hud .pill.cont{max-width:230px}
}
@media(max-width:1000px){
 body .hud .logo{padding:4px}
 body .hud .logo span{display:none}
 body .hud .pill.cont{max-width:160px}
 body .hud #acctPill span:not(.ai){display:none}
}
@media(max-width:700px){
 body .hud{flex-wrap:wrap;justify-content:flex-start}
 body .hud .logo{margin-right:0}
 body .hud .pill.cont{flex:0 1 76px;max-width:76px}
 body .hud .pill.cont span{display:none}
 body .hud .pill.cont::after{content:'继续';font-weight:800}
 body.focus-mode .hud .logo{margin-right:auto}
}
/* A single rail scrolls. The page and the Back/handwriting actions stay in place. */
.gbar{min-width:0}
.gbar>.back,.gbar>#scratchOpen{flex:none}
#qprog{flex:1 1 0;min-width:44px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;touch-action:pan-x pinch-zoom;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;padding:3px 2px 6px;scroll-padding-inline:6px;user-select:none}
#qprog::-webkit-scrollbar{display:none}
#qprog.dragging{cursor:grabbing;scroll-behavior:auto}
#qprog button{flex:0 0 auto;min-width:44px;min-height:44px;padding-inline:8px;touch-action:pan-x pinch-zoom}
#qprog.dragging button{cursor:grabbing}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root),.board.enter,.view.screen-slide{animation:none}}

body:has(#v-focus.fx-career-view.on) .hud .logo{display:none}

.view:not(.on){display:none!important;pointer-events:none!important}
