:root{--app-safe-top:env(safe-area-inset-top,0px);--app-safe-left:env(safe-area-inset-left,0px);--app-safe-right:env(safe-area-inset-right,0px);--app-safe-bottom:env(safe-area-inset-bottom,0px)}
/* Additions stay hidden on desktop; existing desktop layout is unchanged. */
.mobile-only,.community-mobile-label{display:none!important}
.community-actions{display:contents}
.chat-latest{display:none}
.chat-menu-toggle,.grade-icon,.grade-mobile-label{display:none}
.chat-menu{position:fixed;inset:calc(var(--app-safe-top) + 58px) max(10px,var(--app-safe-right)) auto auto;margin:0;width:min(280px,calc(100vw - 24px));max-height:calc(100dvh - var(--app-safe-top) - var(--app-safe-bottom) - 80px);overflow:auto;padding:10px;border:1px solid #76577f;border-radius:16px;background:#21182af5;color:#f8efff;box-shadow:0 8px 32px #0008}
.chat-menu:popover-open{display:flex;flex-direction:column;gap:8px}
.chat-menu .small-button{width:100%;min-height:48px;border-radius:10px;text-align:left;font-size:16px;padding:11px 14px}
.chat-menu #clear-chat,.chat-menu #voice-toggle{font-size:16px}
.chat-menu .status{display:flex;max-width:none;font-size:13px;padding:10px 14px;background:none;border:0}
.chat-menu #voice-toggle:disabled{display:none}
.chat-menu :focus-visible,.chat-menu-toggle:focus-visible{outline:2px solid #fff;outline-offset:2px}
.app-sheet{position:fixed;inset:0;margin:auto;padding:0;width:min(780px,100%);height:100dvh;max-width:100%;max-height:100dvh;border:0;background:#171222;color:#f8efff}
.app-sheet::backdrop{background:#0b0716e8}
.sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #65446f;background:#21172d}
.sheet-heading h2{font-size:20px;margin:0}
.sheet-heading .small-button{font-size:16px;min-height:44px;padding:9px 16px}
.guide-content{padding:18px 20px;font-size:17px;line-height:1.9;overflow-wrap:anywhere}
.guide-content>p{margin-top:0}.guide-content details{border:1px solid #71517c;border-radius:14px;padding:16px;margin:20px 0}
.guide-content summary{font-weight:700;cursor:pointer}.guide-content ol{padding-left:22px}.guide-content li{margin:16px 0}
.guide-links{display:grid;gap:12px}.guide-links a{padding:16px;border:1px solid #71517c;border-radius:12px;background:#30213e;text-decoration:none}
.guide-note{font-size:15px;color:#d1badb;margin:20px 0 0}
.flight-sheet[open]{display:flex;flex-direction:column}.flight-sheet .sheet-heading{flex:none}
#flight-frame{border:0;display:block;width:100%;flex:1;min-height:0;background:#101329}

@media(max-width:800px){
  .mobile-only{display:block!important}.community-desktop-label{display:none}.community-mobile-label{display:inline!important}
  .topbar{padding-inline:12px}.brand{min-width:0;gap:8px}.brand strong{font-size:18px;white-space:nowrap}.brand em{font-size:12px}
  .top-actions #account-open{font-size:14px;min-height:44px;padding:8px 10px}
  .topbar .brand:not([href]){cursor:default}
  body[data-mobile-view="talk"] .shell{position:relative;--chat-overlay-bottom:calc(var(--app-safe-top) + 54px)}
  body[data-mobile-view="talk"] .topbar{position:absolute;inset:0 0 auto;z-index:6;height:0;min-height:0;margin:0;padding:0;border:0;background:none;box-shadow:none;pointer-events:none}
  body[data-mobile-view="talk"] .topbar .brand{position:absolute;left:max(12px,var(--app-safe-left));top:calc(var(--app-safe-top) + 17px);gap:0;pointer-events:auto;text-shadow:0 1px 3px #000,0 0 7px #0009}
  body[data-mobile-view="talk"] .brand-icon,body[data-mobile-view="talk"] .brand small{display:none}
  body[data-mobile-view="talk"] .brand strong{font-size:15px;line-height:22px;letter-spacing:.02em;margin:0;color:#fff}
  body[data-mobile-view="talk"] .brand em{display:inline;font-size:12px;line-height:22px;margin-left:5px;color:#ffdeef;letter-spacing:0}
  body[data-mobile-view="talk"] .chat-menu-toggle{display:block;position:absolute;right:max(8px,var(--app-safe-right));top:calc(var(--app-safe-top) + 6px);width:44px;height:44px;padding:0;border:0;border-radius:12px;background:none;color:#fff;font-size:32px;line-height:1;text-shadow:0 1px 3px #000,0 0 7px #0009;pointer-events:auto;touch-action:manipulation}
  body[data-mobile-view="talk"] .chat-heading,body[data-mobile-view="talk"] .test-banner{display:none}
  .layout>.panel{animation:none}
  .chat{position:relative}.chat-heading{padding:7px 10px}.chat h2{font-size:17px}
  .chat-heading>div:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .chat-heading .chat-buttons{width:100%;flex-wrap:nowrap}
  .chat-buttons #voice-toggle:disabled{display:none}
  .chat-buttons{gap:5px}.chat-buttons .small-button{font-size:14px;min-height:42px;padding:8px 10px}
  #voice-toggle{font-size:13px}#clear-chat{font-size:13px}
  .chat.with-ai-wallpaper{background-image:linear-gradient(180deg,rgba(17,12,28,.025) 0%,rgba(17,12,28,.04) 43%,rgba(17,12,28,.32) 64%,rgba(17,12,28,.82) 100%),var(--ai-wallpaper);background-size:100% 100%,cover;background-position:center,center top;background-repeat:no-repeat;background-color:#1a1425}
  .chat-feed{padding:calc(var(--chat-overlay-bottom) + 10px) 10px 18px;scroll-padding-block:calc(var(--chat-overlay-bottom) + 10px) 12px;--chat-fade:linear-gradient(180deg,transparent var(--chat-overlay-bottom),rgba(0,0,0,.18) calc(var(--chat-overlay-bottom) + 18px),rgba(0,0,0,.5) max(calc(var(--chat-overlay-bottom) + 28px),36%),#000 max(calc(var(--chat-overlay-bottom) + 48px),55%));-webkit-mask-image:var(--chat-fade);mask-image:var(--chat-fade)}
  .chat-feed.reading-history .message.ai .bubble{background:rgba(25,19,37,.97)}
  .chat-feed.reading-history{--chat-fade:linear-gradient(180deg,transparent var(--chat-overlay-bottom),#000 calc(var(--chat-overlay-bottom) + 4px))}
  .chat-feed.with-ai-wallpaper,.chat-feed.with-ai-wallpaper.reading-history{background:none}
  .message{max-width:96%;margin:18px 0;gap:5px;min-width:0}.message.ai{padding-left:37px}
  .message .bubble,.chat-grade-result>div{font-size:18px;line-height:1.75;overflow-wrap:anywhere;word-break:normal}
  .message.ai .bubble{background:rgba(25,19,37,.94)}.message.user .bubble{background:#e6d0f7;color:#22172d}
  .message .sender{font-size:14px;line-height:1.5;background:#1b1327de;color:#eddef5;padding:2px 7px;border-radius:7px}
  .message .speak,.chat-grade-details{font-size:15px;min-height:44px}
  .chat-feed .welcome,.chat-feed.with-ai-wallpaper .welcome{box-sizing:border-box;max-width:100%;min-height:100%;margin:0;padding:45% 8px 12px;display:flex;flex-direction:column;justify-content:flex-end;background:none;border-radius:0;backdrop-filter:none}
  .welcome-star,.welcome>.eyebrow{display:none}.welcome h3{font-size:22px;margin:0 0 10px;text-shadow:0 2px 5px #10091f}
  .welcome p{font-size:17px;line-height:1.8;color:#f4e7fa;text-shadow:0 1px 4px #090512;margin:6px 0}
  .welcome-quote{font-size:16px;line-height:1.8;margin:12px 0 0;padding:12px;background:#251831e8}
  .composer{padding:8px 10px}
  .composer textarea{font-size:18px;line-height:1.5;min-height:46px;padding:9px 7px;max-height:120px}
  .composer form{min-width:0;gap:6px}.composer button{height:46px;width:46px;flex-shrink:0}
  .composer-tools{display:none;font-size:14px;gap:10px;align-items:center;margin-bottom:7px}.composer-tools .small-button{font-size:15px;min-height:44px;padding:8px 12px}.composer-tools>span{font-size:13px;line-height:1.5}
  .grade-desktop-label{display:none}.grade-icon,.grade-mobile-label{display:inline}.grade-icon{font-size:22px;line-height:1;margin-right:6px}.composer-tools #grade-open-chat{display:inline-flex;align-items:center;flex:none}.composer-tools #grade-open-chat.grading-ready{border-color:#f3b2d9;color:#fff0fa}.grading-ready .grade-icon{animation:grade-ready-glow 2.6s ease-in-out 3}
  .chat-latest:not([hidden]){display:block;position:absolute;z-index:4;right:12px;bottom:calc(var(--composer-height,126px) + 12px);border:1px solid #d6a2dd;border-radius:24px;background:#402b50f5;color:#fff;font:inherit;font-size:15px;min-height:44px;padding:8px 16px;box-shadow:0 4px 20px #0008}
  .mobile-tabs{height:calc(62px + var(--app-safe-bottom));padding:5px max(8px,var(--app-safe-right)) calc(4px + var(--app-safe-bottom)) max(8px,var(--app-safe-left))}.mobile-tab{font-size:16px;min-height:48px}
  .play-panel{padding:16px;gap:16px}.play-panel>.app-shortcuts{margin:-16px -16px 4px;padding:16px;display:flex;justify-content:flex-start;gap:12px}
  .community-actions{display:flex;gap:12px;width:100%;order:-1}.community-actions .community-link,.community-actions #guide-open{flex:1;font-size:17px;min-height:48px;border-radius:12px;padding:10px;text-align:center}
  .play-panel>.app-shortcuts .app-install-note{width:100%;justify-content:flex-start}.app-install-note .small-button{font-size:14px;min-height:44px}
  .theme-player{justify-content:flex-start;gap:12px}.theme-title{font-size:15px}.theme-player .small-button,.theme-player select{font-size:15px;min-height:44px}
  .play-panel>.eyebrow{font-size:14px}.play-caption,.play-result,.points-goal,.points-exchange p{font-size:16px;line-height:1.8}
  .play-box{padding:17px 14px}.play-box h3{font-size:19px}.play-actions{gap:9px}.play-actions button{font-size:17px;min-height:48px;padding:10px 12px}
  .points-row small,.relationship-label small,.punpun-line small{font-size:15px}.points-row strong small{font-size:16px}.relationship-label strong,.punpun-line strong{font-size:18px}
  .points-exchange strong{font-size:17px}.points-exchange .play-photo-button,.play-photo-button{font-size:17px;min-height:48px}.relation-history{font-size:15px;line-height:1.8}
  .game-card-heading{display:flex;align-items:center;gap:10px}.game-card-heading>span{color:#f7b1dd;font-size:24px}.game-card-heading h3{margin:0}.flight-card{background:linear-gradient(130deg,#322342,#20253f)}.flight-card .play-caption{margin:12px 0 16px}
  .album-panel{padding:18px 10px}.album-header p{font-size:16px;line-height:1.7;margin-bottom:12px}.album-capacity,.album-note,#account-inline-status{font-size:16px;line-height:1.8}
  .album-header>p,.album-panel .album-background,.album-panel #account-inline-status,.unified-bar>h3{display:none}
  .album-information{font-size:16px;line-height:1.8;border:1px solid #60476e;border-radius:10px;padding:10px 12px;margin:12px 0}.album-information summary{cursor:pointer}.album-information .album-note{margin-bottom:0}
  .album-capacity{margin-top:12px}.album-background{gap:10px;padding:12px}.album-background p{font-size:15px}.album-background .small-button{min-height:44px;font-size:15px}
  #album-unified{margin-top:18px}.unified-bar{gap:12px}.unified-bar h3{font-size:19px}.unified-bar label{width:100%;justify-content:space-between;font-size:16px}#album-sort{font-size:16px;min-height:46px}
  .unified-grid{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:16px}.unified-photo>img{aspect-ratio:auto;height:auto;max-height:74dvh;object-fit:contain;background:#150f20}
  .unified-photo figcaption{padding:14px;gap:10px}.unified-photo strong,.unified-score{font-size:17px}.unified-delete,.unified-details{font-size:16px;min-height:44px;padding:9px 14px}.album-empty{font-size:17px}
  .photo-lightbox-caption{font-size:16px;line-height:1.6}.photo-lightbox-close,.photo-lightbox-save{font:inherit;font-size:16px;min-height:44px;padding:9px 12px}
  .photo-lightbox-save{position:absolute;z-index:1;top:10px;left:10px;border:1px solid #bd91c8;border-radius:10px;background:#433052;color:#fff;text-decoration:none}
  .photo-lightbox-content{padding-top:66px}.photo-lightbox-content img{max-height:calc(100dvh - 170px)}
  .feature-modal .muted,.feature-modal label,.feature-modal .error,.feature-modal .grade-reasons,.feature-modal .grade-breakdown{font-size:16px}
  .feature-modal .small-button,.feature-modal .primary,.feature-modal .secondary,.feature-modal .account-tabs button{font-size:16px;min-height:44px}
  .app-sheet{width:100%;height:100dvh}.sheet-heading{padding-top:max(10px,env(safe-area-inset-top));min-height:68px}.sheet-heading h2{font-size:19px}.guide-content{padding-bottom:max(24px,env(safe-area-inset-bottom))}
  .toast{bottom:calc(76px + env(safe-area-inset-bottom));font-size:16px;line-height:1.6;width:max-content;max-width:92vw}
}
@keyframes grade-ready-glow{0%,100%{color:#efc6e0;text-shadow:none}50%{color:#fff;text-shadow:0 0 8px #ffb0dd}}
@media(prefers-reduced-motion:reduce){.grading-ready .grade-icon{animation:none}}
@media(max-width:380px){.brand em{display:none}.chat h2{font-size:16px}.chat-buttons .small-button{font-size:12px;padding:8px}.top-actions #account-open{font-size:13px}.composer-tools>span{font-size:12px}.sheet-heading h2{font-size:17px}}

.activity-ready{display:inline-block;font-size:14px;padding:2px 8px;border-radius:8px;background:#503252;color:#ffe2f5;white-space:nowrap}
.mobile-tab{position:relative}.activity-dot{position:absolute;right:8px;top:7px;width:6px;height:6px;border-radius:50%;background:#f4b5dd;box-shadow:0 0 4px #f4b5dd88}.mobile-tab.active .activity-dot{background:#62304b}.mobile-tab.has-activity{animation:activity-glow 2.6s ease-in-out 3}
@keyframes activity-glow{0%,100%{box-shadow:none}50%{box-shadow:inset 0 0 0 1px #efb6dc,0 0 7px #efb6dc55}}
@media(prefers-reduced-motion:reduce){.mobile-tab.has-activity{animation:none}}
