/* Canoe 1.7.100: game scrolling, feed action sheet, stable header avatar anchor. */
#gomokuGame,
#loveFlight{
  height:100dvh;
  max-height:100dvh;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  touch-action:pan-y;
}
#gomokuGame .gm-shell,
#loveFlight .lf-shell{min-height:100%;height:auto;box-sizing:border-box}
#gomokuGame .gm-board{touch-action:pan-y}
#gomokuGame .gm-messages{touch-action:pan-y;-webkit-overflow-scrolling:touch}
/* Playing used to set overflow:hidden on both the page and inner shell,
   which trapped the entire board and the controls below the fold. */
#loveFlight.lf-playing{height:100dvh;max-height:100dvh;overflow-y:auto}
#loveFlight.lf-playing .lf-shell{height:auto;min-height:100%;overflow:visible;padding-bottom:max(28px,env(safe-area-inset-bottom))}
#loveFlight.lf-playing .lf-stage{
  flex:0 0 auto;
  min-height:0;
  height:auto;
  padding:18px 6px 22px;
  overflow:visible;
  touch-action:pan-y;
}
#loveFlight.lf-playing .lf-board{width:min(100%,480px);max-height:none;aspect-ratio:1}
#loveFlight .lf-sheet-backdrop{position:fixed;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
#loveFlight .lf-sheet{max-height:min(86dvh,760px);-webkit-overflow-scrolling:touch}
/* Default appearance is unchanged, but themes can now display/move a real
   header avatar without CSS impersonating or copying a message bubble. */
.talk-head #talkHeadAvatar{display:none;width:32px;height:32px;object-fit:cover;border-radius:50%;flex:0 0 32px}
.talk-head #talkHeadAvatar[data-available="false"]{display:none!important}
/* Clean three-dots icon: a button with a reliable hit area. */
.feed-post .post-more{display:grid;place-items:center;width:34px;height:34px;min-width:34px;min-height:34px;padding:0;border:1px solid var(--hairline);border-radius:12px;color:var(--gray-1);background:var(--fill);font:inherit;cursor:pointer;touch-action:manipulation}
.feed-post .post-more svg{display:block;width:19px;height:19px;fill:currentColor;stroke:none}
.feed-post .post-more[aria-expanded="true"]{background:var(--card);color:var(--ink)}
.feed-post-action-sheet[hidden]{display:none!important}
.feed-post-action-sheet{position:fixed;inset:0;z-index:27000;display:flex;align-items:flex-end;justify-content:center;box-sizing:border-box;padding:14px max(12px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-bottom));font-family:inherit}
.feed-post-action-scrim{position:absolute;inset:0;background:rgba(0,0,0,.26);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
.feed-post-action-panel{position:relative;z-index:1;width:min(100%,440px);max-height:85dvh;overflow-y:auto;box-sizing:border-box;padding:14px;border-radius:22px;background:var(--bg);color:var(--ink);box-shadow:0 16px 50px rgba(0,0,0,.14)}
.feed-post-action-heading{text-align:center;font-size:13px;font-weight:600;color:var(--gray-2);padding:9px 10px 15px}
.feed-post-action-panel button{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;margin:0;padding:12px;border:0;border-radius:12px;background:transparent;color:inherit;font:inherit;font-size:15px;text-align:left;cursor:pointer}
.feed-post-action-panel button+button{margin-top:4px}
.feed-post-action-panel button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;flex:0 0 20px}
.feed-post-action-panel button.danger{color:#b35c61}
.feed-post-action-panel button.cancel{justify-content:center;background:var(--fill);margin-top:14px;font-weight:600}
.feed-post-action-panel button:disabled{opacity:.4;cursor:default}
@media(min-width:680px){.feed-post-action-sheet{align-items:center}}
