/* Publika optical material. Loaded last, reversible through body.pk-obsidian.
   Only ambient light moves with scroll. Media and reading surfaces stay sharp. */
body.pk-obsidian {
  --pk-canvas: #070809;
  --pk-surface: #121315;
  --pk-surface-raised: #1a1b1e;
  --pk-border: rgba(236, 231, 235, .16);
  --pk-ink: #f5f2f1;
  --pk-muted: #b6b3b5;
  --pk-accent: #d75765;
  --pk-accent-strong: #781b2c;
  --pk-heart: #ec6677;
  --pk-glow: rgba(112, 13, 38, .18);
  --pk-glass-edge: rgba(248, 243, 250, .23);
  --pk-glass-edge-soft: rgba(242, 236, 245, .12);
  --pk-glass-depth: #09090c;
  --pk-glass-solid: #141417;
  --pk-glass-chrome: linear-gradient(132deg, rgba(250, 247, 255, .075), transparent 24%, rgba(46, 32, 39, .08) 63%, rgba(162, 30, 63, .055)), rgba(14, 14, 18, .89);
  --pk-glass-panel: linear-gradient(146deg, rgba(253, 246, 255, .09), transparent 21%, rgba(50, 32, 42, .045) 70%, rgba(144, 30, 61, .08)), rgba(18, 18, 22, .94);
  --pk-glass-control: linear-gradient(155deg, rgba(255, 247, 255, .055), transparent 37%, rgba(69, 22, 40, .07)), #151518;
  --pk-glass-bevel: inset 0 1px 0 rgba(255, 249, 255, .19), inset 1px 0 0 rgba(255, 249, 255, .06), inset 0 -1px 0 rgba(1, 1, 4, .9), inset 0 -3px 7px rgba(0, 0, 2, .25);
  --pk-glass-shadow: 0 15px 46px rgba(0, 0, 4, .42), 0 2px 4px rgba(0, 0, 0, .5);
  --pk-ruby-material: linear-gradient(158deg, rgba(255, 245, 242, .21) 0%, rgba(255, 245, 242, .035) 18%, transparent 19% 62%, rgba(219, 122, 131, .13) 63%, transparent 82%), linear-gradient(26deg, transparent 42%, rgba(8, 0, 2, .46) 43% 62%, rgba(255, 195, 201, .08) 63%, transparent 78%), radial-gradient(100% 140% at 52% 130%, #9c2034 0%, #5e101e 33%, transparent 65%), linear-gradient(145deg, #47131c 0%, #19090d 48%, #390b15 100%);
  --pk-ruby-bevel: inset 0 1px 0 rgba(255, 242, 252, .52), inset 1px 0 0 rgba(244, 218, 237, .15), inset -1px 0 0 rgba(185, 99, 128, .18), inset 0 -2px 0 rgba(248, 93, 132, .16), inset 0 -5px 9px rgba(3, 0, 4, .57), 0 3px 8px rgba(0, 0, 3, .55), 0 8px 18px -11px rgba(231, 55, 97, .8);
  color-scheme: dark;
  background: var(--pk-canvas);
  color: var(--pk-ink);
  isolation: isolate;
}

/* Two large optical planes, rather than a blur on every item in the Stream.
   The parent controller supplies bounded pixel offsets; none affect layout. */
body.pk-obsidian.fs-backdrop::before {
  background: var(--pk-canvas);
  background-image: none;
  filter: none;
  will-change: auto;
}
body.pk-obsidian.fs-backdrop::after { background: none; }
body.pk-obsidian .pk-optics {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
  background: radial-gradient(ellipse at 9% 62%, rgba(80, 16, 39, .09), transparent 44%), #070809;
}
body.pk-obsidian .pk-optic-slab {
  position: absolute;
  display: block;
  pointer-events: none;
  border-radius: 32%;
}
body.pk-obsidian .pk-optic-slab--far {
  inset: -28vh 30vw -22vh -66vw;
  border: 1px solid rgba(250, 229, 242, .05);
  background: linear-gradient(113deg, transparent 54%, rgba(162, 19, 55, .17) 55%, rgba(219, 89, 111, .06) 57%, transparent 61%), linear-gradient(120deg, rgba(21, 22, 26, .72), rgba(5, 5, 9, .2));
  box-shadow: inset -1px 0 rgba(255, 244, 254, .1), 4px 2px 28px rgba(0, 0, 2, .5);
  transform: translate3d(var(--pk-optic-x, 0px), var(--pk-optic-y, 0px), 0) rotate(calc(-19deg + var(--pk-optic-slope, 0deg)));
}
body.pk-obsidian .pk-optic-slab--near {
  top: 14vh;
  right: -55vw;
  width: 94vw;
  height: 116vh;
  border: 1px solid rgba(235, 204, 224, .085);
  background: linear-gradient(156deg, rgba(255, 243, 255, .065), transparent 21% 60%, rgba(122, 14, 43, .09) 72%, transparent 86%), linear-gradient(130deg, rgba(17, 18, 23, .9), rgba(3, 4, 8, .12));
  box-shadow: inset 2px 0 rgba(255, 244, 251, .09), inset -4px 0 17px rgba(108, 8, 36, .12);
  transform: translate3d(0, var(--pk-optic-drift, 0px), 0) rotate(calc(23deg - var(--pk-optic-slope, 0deg)));
}
body.pk-obsidian .pk-optic-slab--caustic {
  top: 25vh;
  left: -18vw;
  width: 128vw;
  height: 44vh;
  background: radial-gradient(ellipse at 12% 52%, rgba(174, 18, 53, .12), transparent 33%), radial-gradient(ellipse at 93% 67%, rgba(154, 22, 62, .1), transparent 35%);
  transform: translate3d(var(--pk-optic-x, 0px), var(--pk-optic-light-y, 0px), 0);
}
body.pk-obsidian :is(.pk-frame, .pk-stage, .pk-home, .pk-home-shell, .pk-home-column, .pk-home-stream, .pk-creator-frame, .pk-server-main) {
  background-color: transparent;
}

/* The chrome is the thickest glass: one backdrop per independent panel. */
body.pk-obsidian :is(.pk-top, .pk-rail, .pk-mobile-nav) {
  background: var(--pk-glass-chrome);
  border-color: var(--pk-glass-edge);
  box-shadow: var(--pk-glass-bevel), var(--pk-glass-shadow);
  -webkit-backdrop-filter: blur(18px) saturate(115%);
  backdrop-filter: blur(18px) saturate(115%);
}
body.pk-obsidian .pk-top {
  border-bottom-color: rgba(244, 230, 244, .17);
  box-shadow: inset 0 -1px rgba(125, 49, 78, .17), 0 5px 26px rgba(0, 0, 2, .35);
}
body.pk-obsidian .pk-rail {
  border: 1px solid var(--pk-glass-edge-soft);
  border-top-color: rgba(247, 237, 250, .24);
  border-left-color: rgba(240, 231, 246, .18);
  border-radius: 25px;
}
body.pk-obsidian .pk-mobile-nav {
  border-top-color: rgba(255, 243, 255, .39);
  border-bottom-color: rgba(192, 100, 132, .24);
  box-shadow: var(--pk-glass-bevel), 0 10px 35px rgba(0, 0, 0, .52), 0 10px 27px -24px rgba(226, 72, 113, .65);
}
body.pk-obsidian :is(.pk-rail a, .pk-mobile-nav a) {
  color: #c6c3ca;
}
body.pk-obsidian :is(.pk-rail a, .pk-mobile-nav a):is(:hover, :focus-visible) {
  background: linear-gradient(150deg, rgba(255, 248, 255, .065), rgba(135, 36, 67, .035));
  color: #fff7fd;
}
body.pk-obsidian :is(.pk-rail a, .pk-mobile-nav a)[aria-current="page"] {
  background: linear-gradient(140deg, rgba(232, 223, 240, .13), rgba(55, 36, 48, .18));
  color: #fff8fd;
  box-shadow: inset 0 1px rgba(255, 250, 255, .19), inset 0 -1px rgba(0, 0, 3, .65);
}
body.pk-obsidian :is(.pk-rail a, .pk-mobile-nav a)[aria-current="page"] :is(.pk-ico, .pk-icon) { color: #e88788; }
body.pk-obsidian .pk-account summary,
body.pk-obsidian .pk-rail > .pk-account summary {
  background: linear-gradient(140deg, rgba(255, 242, 255, .055), rgba(6, 4, 8, .11));
  box-shadow: inset 0 1px rgba(255, 240, 255, .065);
}

/* Sheets and menus carry a white polished rim and a dim ruby lower edge. */
body.pk-obsidian #pk-notification-panel,
body.pk-obsidian :is(.pk-notification-panel, .pk-chat-panel, .pk-invite-dialog, .pk-sheet-panel, .pk-dialog, .pk-confirm, .fs-confirm, .pk-call-card, .pk-claim-card),
body.pk-obsidian .pk-media-editor > section,
body.pk-obsidian .pk-media-editor-panel {
  border-color: var(--pk-glass-edge);
  border-top-color: rgba(255, 247, 255, .35);
  border-bottom-color: rgba(152, 63, 92, .29);
  background: var(--pk-glass-panel);
  color: var(--pk-ink);
  box-shadow: var(--pk-glass-bevel), 0 30px 85px rgba(0, 0, 3, .67), 0 12px 32px -28px rgba(212, 46, 90, .7);
  -webkit-backdrop-filter: blur(18px) saturate(110%);
  backdrop-filter: blur(18px) saturate(110%);
}
body.pk-obsidian #suggest-results:not([hidden]),
body.pk-obsidian :is(.pk-account nav, .pk-join-menu nav, .pk-post-more nav, .pk-creator-more nav, .pk-contact-menu nav, .pk-message-more nav, .pk-profile-post-options nav, .pk-post-menu-list, .pk-chat-emoji) {
  border: 1px solid var(--pk-glass-edge);
  border-top-color: rgba(255, 245, 255, .28);
  background: var(--pk-glass-panel);
  color: var(--pk-ink);
  box-shadow: var(--pk-glass-bevel), 0 16px 46px rgba(0, 0, 0, .62);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-invite-dialog, .pk-dialog, .pk-confirm, .fs-confirm)::backdrop {
  background: rgba(3, 3, 7, .72);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-sheet, .pk-sheet-backdrop, .pk-call-overlay, .pk-media-editor) {
  background: rgba(3, 3, 7, .75);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian .pk-invite-dialog .pk-invite-sheet {
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.pk-obsidian .pk-dial-glass {
  background: radial-gradient(ellipse at 50% 58%, rgba(85, 11, 34, .17), transparent 54%), rgba(6, 5, 10, .91);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
body.pk-obsidian .pk-dial-tool { -webkit-backdrop-filter: none; backdrop-filter: none; }

/* Quiet cut-glass edges, with no expensive backdrop on grids or feed items. */
body.pk-obsidian :is(.fs-glass, .fs-glass-strong) {
  background: var(--pk-glass-control);
  color: var(--pk-ink);
  border-color: var(--pk-glass-edge-soft);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-card, .pk-settings-group, .pk-discovery-filters, .pk-discovery-card, .pk-creator-card, .pk-social-card, .pk-callsheet, .pk-home-onboard, .pk-chat-call-bar, .pk-radio-card, .pk-server-person, .pk-upload-card, .fs-empty) {
  border-color: var(--pk-glass-edge-soft);
  background: var(--pk-glass-control);
  box-shadow: inset 0 1px rgba(255, 244, 255, .075), inset 0 -1px rgba(0, 0, 2, .6);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian .pk-servers-index .pk-server-tile-link {
  border-color: rgba(235, 223, 242, .2);
  border-top-color: rgba(255, 249, 255, .27);
  box-shadow: inset 0 1px rgba(255, 248, 255, .12), inset 0 -1px rgba(113, 24, 55, .32), 0 6px 14px rgba(0, 0, 2, .2);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian .pk-servers-index .pk-server-tile-link:is(:hover, :focus-visible) {
  border-color: rgba(239, 182, 208, .45);
  box-shadow: inset 0 1px rgba(255, 250, 255, .22), 0 8px 20px rgba(0, 0, 2, .34);
}
body.pk-obsidian .pk-servers-index .pk-house-tile-badges > span {
  border-color: rgba(250, 238, 252, .16);
  background: rgba(12, 10, 16, .88);
  box-shadow: inset 0 1px rgba(255, 244, 255, .075);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-post-card--grid, .pk-wall-figure) {
  box-shadow: 0 0 0 1px rgba(240, 222, 244, .11), 0 4px 13px rgba(0, 0, 2, .17);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-post-card--feed, .pk-post-feed, .pk-feed-item, .pk-home-stream, .pk-post, .pk-post-card-body, .pk-reply, .pk-notification-row, .pk-inbox-item, .pk-house-suggestion) {
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian .pk-post-feed > li { border-bottom-color: rgba(226, 214, 233, .12); }
body.pk-obsidian .pk-notification-row { border-bottom-color: rgba(226, 214, 233, .12); }
body.pk-obsidian :is(.pk-inbox-item.is-unread, .pk-notification-panel .pk-notification-unread) {
  background: rgba(117, 26, 54, .075);
  box-shadow: inset 2px 0 #ba526e;
}
body.pk-obsidian .pk-terms-notice {
  border-color: var(--pk-glass-edge-soft);
  background: linear-gradient(120deg, rgba(240, 235, 245, .035), rgba(97, 21, 46, .035));
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

/* Forms share the material, but input text and focus never move or refract. */
body.pk-obsidian .pk-control,
body.pk-obsidian .pk-stage :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]), select, textarea),
body.pk-obsidian .pk-top .pk-search .pk-control,
body.pk-obsidian .pk-chat-search input,
body.pk-obsidian .pk-chat-contact-search,
body.pk-obsidian #main .pk-message-inbox .pk-message-search input[type="search"],
body.pk-obsidian .pk-composer-journey .pk-composer-caption {
  border-color: rgba(247, 230, 250, .2);
  background: var(--pk-glass-control);
  color: #f6f2f1;
  box-shadow: inset 0 1px rgba(255, 247, 255, .065), inset 0 3px 6px rgba(0, 0, 3, .2), 0 1px rgba(255, 245, 255, .025);
}
body.pk-obsidian :is(input, textarea)::placeholder { color: #a29ca7; opacity: 1; }
body.pk-obsidian :is(.pk-control, input, textarea, select):focus-visible {
  border-color: #d19bad;
  outline: 2px solid #e9b7c7;
  outline-offset: 3px;
}
body.pk-obsidian :is(input[type="checkbox"], input[type="radio"], input[type="range"]) { accent-color: #b84666; }
body.pk-obsidian :is(.pk-composer-journey .pk-drop-target, .pk-composer-section, .pk-invite-bubble, .pk-reply-box, .pk-reply-bar form, .pk-chat-field, .pk-message-field) {
  border-color: rgba(235, 217, 242, .19);
  background: var(--pk-glass-control);
  box-shadow: inset 0 1px rgba(255, 245, 255, .085), inset 0 -1px rgba(0, 0, 3, .66);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-chat-field, .pk-message-field):focus-within {
  border-color: #c78ca4;
  box-shadow: inset 0 1px rgba(255, 245, 255, .13), 0 0 0 3px rgba(210, 140, 166, .1);
}
body.pk-obsidian .pk-composer.pk-composer-journey,
body.pk-obsidian .pk-composer-address .pk-composer-section {
  background: transparent;
  box-shadow: none;
}
body.pk-obsidian .pk-composer--inline:not(.pk-composer-journey) {
  background: var(--pk-glass-control);
  border-color: var(--pk-glass-edge-soft);
  box-shadow: inset 0 1px rgba(255, 243, 255, .07);
}
body.pk-obsidian .pk-composer-journey .pk-composer-journey-art { color: #d08aa0; }
body.pk-obsidian .pk-house-journey { color: #d08aa0; }
body.pk-obsidian .pk-house-create .pk-radio-card:has(input:checked) {
  border-color: #bc7a91;
  background: linear-gradient(135deg, rgba(138, 55, 83, .12), rgba(38, 14, 30, .09)), #171419;
}
body.pk-obsidian .pk-composer-public-review { color: #edbdca; }
/* A message field is one control. Never put a second material inside it. */
body.pk-obsidian .pk-chat-field textarea,
body.pk-obsidian #main .pk-message-reply textarea,
body.pk-obsidian .pk-reply-bar textarea.pk-control,
body.pk-obsidian .pk-invite-bubble textarea {
  border: 0;
  background: transparent;
  box-shadow: none;
}
body.pk-obsidian #notification-form .pk-notification-controls select {
  border: 0;
  background: transparent;
  box-shadow: none;
}

/* Secondary controls feel like polished obsidian; dimensions remain the
   existing layout's responsibility, including the 44px mobile hit targets. */
body.pk-obsidian .fs-button,
body.pk-obsidian :is(.pk-submit, .pk-invite-channel, .pk-chat-toggle, .pk-chat-square, .pk-chat-original, .pk-dial-tool, .pk-message-new, .pk-contact-message, .pk-chip, .pk-tabs a, .pk-social-follow, .pk-social-watch, .pk-rail-watch, .pk-rail-follow-link),
body.pk-obsidian .pk-media-editor button,
body.pk-obsidian .pk-call-controls button {
  border: 1px solid rgba(231, 215, 238, .2);
  background: var(--pk-glass-control);
  color: #f1eaf3;
  box-shadow: var(--pk-glass-bevel), 0 3px 6px rgba(0, 0, 2, .19);
  text-shadow: 0 1px 2px rgba(0, 0, 2, .35);
  transition: border-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.fs-button, .pk-invite-channel, .pk-chat-toggle, .pk-chat-square, .pk-dial-tool, .pk-message-new, .pk-contact-message, .pk-chip, .pk-tabs a):hover:not(:disabled) {
  border-color: rgba(248, 220, 240, .39);
  background: linear-gradient(146deg, rgba(255, 241, 255, .075), rgba(108, 37, 64, .05)), #19171d;
  box-shadow: inset 0 1px rgba(255, 249, 255, .23), inset 0 -2px rgba(0, 0, 4, .7), 0 4px 10px rgba(0, 0, 2, .28);
}
body.pk-obsidian :is(.fs-button, .pk-submit, .pk-invite-channel, .pk-chat-toggle, .pk-chat-square, .pk-chat-send, .pk-message-send, .pk-message-new, .pk-server-create-button, .pk-join-trigger, .pk-top .pk-create-action, .pk-mobile-nav .pk-mobile-create, .pk-dial-tool):focus-visible {
  outline: 2px solid #f2c9d8;
  outline-offset: 3px;
}

/* Ruby is a dark transparent gemstone, never a bright orange painted button.
   Facets are background layers, so glyphs and labels remain above the light. */
body.pk-obsidian .fs-button.fs-button--primary,
body.pk-obsidian .pk-top .pk-create-action,
body.pk-obsidian .pk-mobile-nav .pk-mobile-create,
body.pk-obsidian .pk-join-menu .pk-join-trigger,
body.pk-obsidian .pk-servers-index .pk-server-create-button,
body.pk-obsidian .pk-composer .fs-button--primary.pk-composer-share,
body.pk-obsidian .pk-servers .pk-server-head .pk-server-actions .fs-button--primary,
body.pk-obsidian :is(.pk-submit, .pk-chat-send, .pk-chat-call, .pk-message-send, .pk-message-call, .pk-message-new, .pk-message-new-button, .pk-reply-send, .pk-stream-new, .pk-invite-channel--share, .pk-compose-dial),
body.pk-obsidian .pk-media-editor-actions button:last-child,
body.pk-obsidian .pk-creator-card-follow:not([aria-pressed="true"]),
body.pk-obsidian .pk-social-follow:not([aria-pressed="true"]),
body.pk-obsidian .pk-rail-follow .fs-button:not([aria-pressed="true"]),
body.pk-obsidian .pk-meet-follow .fs-button:not([aria-pressed="true"]),
body.pk-obsidian .pk-call-controls .pk-call-end {
  border: 1px solid rgba(231, 173, 200, .5);
  border-top-color: rgba(255, 231, 248, .74);
  border-bottom-color: rgba(168, 45, 79, .65);
  background: var(--pk-ruby-material);
  color: #fff4fb;
  box-shadow: var(--pk-ruby-bevel);
  text-shadow: 0 1px 3px rgba(7, 0, 5, .64);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian .pk-top .pk-create-action:is(:hover, :focus-visible),
body.pk-obsidian .pk-mobile-nav .pk-mobile-create:is(:hover, :focus-visible),
body.pk-obsidian .pk-join-menu .pk-join-trigger:is(:hover, :focus-visible),
body.pk-obsidian .pk-join-menu[open] .pk-join-trigger,
body.pk-obsidian .pk-servers-index .pk-server-create-button:is(:hover, :focus-visible),
body.pk-obsidian .pk-composer .fs-button--primary.pk-composer-share:is(:hover, :focus-visible),
body.pk-obsidian .fs-button.fs-button--primary:hover:not(:disabled),
body.pk-obsidian .pk-servers .pk-server-head .pk-server-actions .fs-button--primary:hover:not(:disabled),
body.pk-obsidian :is(.pk-submit, .pk-chat-send, .pk-chat-call, .pk-message-send, .pk-message-call, .pk-message-new, .pk-message-new-button, .pk-reply-send, .pk-stream-new, .pk-invite-channel--share, .pk-compose-dial):hover:not(:disabled),
body.pk-obsidian .pk-media-editor-actions button:last-child:hover:not(:disabled) {
  border-top-color: #fff1fa;
  border-color: #d697b2;
  background: var(--pk-ruby-material);
  color: #fff9fd;
  box-shadow: inset 0 1px 0 rgba(255, 243, 252, .74), inset 1px 0 0 rgba(244, 218, 237, .2), inset 0 -2px rgba(248, 93, 132, .23), inset 0 -5px 9px rgba(3, 0, 4, .57), 0 3px 8px rgba(0, 0, 3, .55), 0 10px 23px -12px rgba(231, 55, 97, .82);
}
body.pk-obsidian .pk-top .pk-create-action { border-radius: 14px; }
body.pk-obsidian .pk-mobile-nav .pk-mobile-create { border-radius: 15px; }
body.pk-obsidian :is(.pk-top .pk-create-action, .pk-mobile-nav .pk-mobile-create) .pk-new-svg {
  color: #ffeaf4;
  filter: drop-shadow(0 1px 1px #080006);
}
body.pk-obsidian .pk-servers-index .pk-server-create-button::before {
  background: linear-gradient(120deg, transparent 20%, rgba(255, 233, 251, .13) 49%, transparent 78%);
}
body.pk-obsidian .pk-servers-index .pk-house-create-glyph,
body.pk-obsidian .pk-join-art { color: #f2c8d9; }
body.pk-obsidian .pk-join-label > span,
body.pk-obsidian .pk-join-chevron { color: #d8b4c4; }
body.pk-obsidian .pk-compose-dial { color: #ffeaf4; }
body.pk-obsidian :is(.fs-button, .pk-submit, .pk-chat-send, .pk-message-send, .pk-chat-call, .pk-message-call):disabled,
body.pk-obsidian .pk-top .pk-create-action:disabled,
body.pk-obsidian .pk-mobile-nav .pk-mobile-create:disabled,
body.pk-obsidian .pk-join-menu .pk-join-trigger:disabled,
body.pk-obsidian .pk-servers-index .pk-server-create-button:disabled,
body.pk-obsidian .pk-composer .fs-button--primary.pk-composer-share:disabled,
body.pk-obsidian .pk-servers .pk-server-head .pk-server-actions .fs-button--primary:disabled,
body.pk-obsidian .pk-media-editor-actions button:last-child:disabled,
body.pk-obsidian .pk-creator-card-follow:disabled,
body.pk-obsidian .pk-social-follow:disabled,
body.pk-obsidian .pk-rail-follow .fs-button:disabled,
body.pk-obsidian .pk-meet-follow .fs-button:disabled,
body.pk-obsidian .pk-call-controls .pk-call-end:disabled {
  opacity: 1;
  border-color: rgba(193, 179, 199, .16);
  background: #1b171d;
  color: #9f92a2;
  box-shadow: inset 0 1px rgba(240, 221, 246, .055);
  text-shadow: none;
}
body.pk-obsidian :is(.pk-tabs a, .pk-chip, .pk-chat-contact-tabs button)[aria-current="page"],
body.pk-obsidian :is(.pk-chip, .pk-chat-contact-tabs button)[aria-pressed="true"] {
  border-color: rgba(216, 170, 190, .4);
  background: linear-gradient(145deg, rgba(174, 66, 107, .13), rgba(37, 18, 34, .21)), #1d181f;
  color: #f9e8f1;
  box-shadow: inset 0 1px rgba(255, 237, 252, .12);
}

/* Conversations have dense opaque reading surfaces. Glass is confined to the
   outer dock / header; neither images nor every message get a blur layer. */
body.pk-obsidian.pk-messages-body :is(.pk-frame, .pk-stage),
body.pk-obsidian.pk-messages-body .pk-stage > main#main.pk-message-page { background: transparent; }
body.pk-obsidian .pk-message-inbox {
  background: linear-gradient(132deg, rgba(255, 244, 255, .045), transparent 33%), #101014;
  border-right-color: rgba(230, 215, 240, .17);
  box-shadow: inset 1px 0 rgba(246, 239, 254, .07);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian .pk-message-conversation {
  background: radial-gradient(ellipse at 85% 6%, rgba(82, 9, 33, .075), transparent 42%), #0b0b0f;
}
body.pk-obsidian .pk-message-thread-head {
  background: var(--pk-glass-chrome);
  border-bottom-color: rgba(238, 221, 248, .17);
  box-shadow: inset 0 1px rgba(255, 240, 255, .085), 0 4px 15px rgba(0, 0, 2, .17);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
body.pk-obsidian :is(.pk-message-reply, .pk-chat-compose, .pk-chat-panel > header, .pk-chat-panel > footer, .pk-call-controls) {
  background: #131216;
  border-color: rgba(235, 218, 245, .12);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-message-bubble, .pk-chat-message) {
  background: #1a1920;
  border-color: rgba(227, 209, 242, .12);
  color: #f3edf5;
  box-shadow: inset 0 1px rgba(255, 240, 255, .05);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-message-bubble-own, .pk-chat-message-own) {
  background: linear-gradient(134deg, #382027, #29171d 67%, #341722);
  border-color: rgba(188, 107, 145, .26);
  color: #fff0fa;
  box-shadow: inset 0 1px rgba(255, 239, 250, .08);
}
body.pk-obsidian .pk-conversation-list a[aria-current="page"],
body.pk-obsidian .pk-chat-person.is-active {
  background: linear-gradient(140deg, rgba(173, 85, 117, .1), transparent), #211b23;
  border-color: rgba(192, 116, 149, .34);
  box-shadow: inset 0 1px rgba(255, 240, 255, .075);
}
body.pk-obsidian :is(.pk-conversation-list a, .pk-chat-person):hover { background: #201c23; }
body.pk-obsidian :is(.pk-post-more nav, .pk-message-more nav, .pk-contact-menu nav, .pk-creator-more nav, .pk-account nav) :is(a, button):hover {
  background: rgba(243, 224, 250, .06);
}
body.pk-obsidian .pk-chat-panel :is(.pk-chat-message, .pk-chat-field, .pk-chat-person, .pk-chat-call-bar, .pk-chat-emoji) {
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.pk-obsidian :is(.pk-carousel-arrow, .pk-media-play, .pk-media-stack, .pk-media-duration, .pk-media-pair-mark, .pk-embed-play, .pk-media-video-actions button) {
  border-color: rgba(251, 238, 255, .24);
  background: rgba(12, 8, 17, .92);
  color: #fff3fb;
  box-shadow: inset 0 1px rgba(255, 239, 254, .1);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
/* Never add a tile behind the House's existing invite/share/overflow links. */
body.pk-obsidian .pk-server-actions :is(.fs-button[data-portable-share], .pk-server-invite, .pk-server-more > summary),
body.pk-obsidian .pk-creator-actions :is(.fs-button[data-portable-share], a.fs-button[href="/settings/profile"]) {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  text-shadow: none;
}
body.pk-obsidian :is(.pk-detail-bar, .pk-screening .pk-discover-search) {
  border-color: var(--pk-glass-edge-soft);
  background: var(--pk-glass-chrome);
  box-shadow: inset 0 1px rgba(255, 241, 248, .075);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* Modest screens keep a single glass rail; deep page content never needs it. */
@media (max-width: 899px) {
  body.pk-obsidian .pk-mobile-nav {
    grid-template-columns: minmax(44px, 1fr) minmax(44px, 1fr) 54px minmax(44px, 1fr) minmax(44px, 1fr);
  }
  body.pk-obsidian .pk-mobile-nav > a { min-width: 44px; min-height: 44px; }
  body.pk-obsidian .pk-mobile-nav .pk-mobile-create,
  body.pk-obsidian .pk-mobile-nav.is-compact .pk-mobile-create {
    width: 54px;
    height: 54px;
    min-width: 54px;
    min-height: 54px;
    border-radius: 18px;
  }
  body.pk-obsidian .pk-mobile-nav .pk-mobile-create .pk-new,
  body.pk-obsidian .pk-mobile-nav .pk-mobile-create .pk-new-svg { width: 31px; height: 31px; }
}
@media (max-width: 759px) {
  body.pk-obsidian .pk-rail { background: var(--pk-glass-panel); }
  body.pk-obsidian .pk-optic-slab--near { right: -78vw; width: 122vw; }
  body.pk-obsidian .pk-optic-slab--far { opacity: .65; }
}
/* A safe opaque material is the default when the browser has no backdrop. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body.pk-obsidian {
    --pk-glass-chrome: linear-gradient(135deg, #1b191f, #111015 65%, #181219);
    --pk-glass-panel: linear-gradient(145deg, #201c24, #151219 58%, #1c131d);
  }
  body.pk-obsidian #pk-notification-panel,
  body.pk-obsidian :is(.pk-top, .pk-rail, .pk-mobile-nav, .pk-notification-panel, .pk-chat-panel, .pk-invite-dialog, .pk-sheet-panel, .pk-dialog, .pk-confirm, .fs-confirm, .pk-call-card, .pk-card, .pk-claim-card, .pk-media-editor > section, .pk-media-editor-panel, .pk-dial-glass, .pk-message-thread-head, .pk-detail-bar, .pk-screening .pk-discover-search) {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  body.pk-obsidian .pk-dial-glass { background: #0b0810; }
}
@media (prefers-reduced-transparency: reduce) {
  body.pk-obsidian {
    --pk-glass-chrome: linear-gradient(135deg, #1b191f, #111015 65%, #181219);
    --pk-glass-panel: linear-gradient(145deg, #201c24, #151219 58%, #1c131d);
  }
  body.pk-obsidian .pk-optics { display: none; }
  body.pk-obsidian *, body.pk-obsidian *::before, body.pk-obsidian *::after, body.pk-obsidian dialog::backdrop {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  body.pk-obsidian :is(.pk-sheet, .pk-call-overlay, .pk-media-editor) { background: #08070c; }
  body.pk-obsidian .pk-dial-glass { background: #0b0810; }
}
@media (prefers-reduced-motion: reduce) {
  body.pk-obsidian .pk-optic-slab { transform: none; }
  body.pk-obsidian .pk-optic-slab--caustic { top: 25vh; }
  body.pk-obsidian :is(.fs-button, .pk-submit, .pk-top .pk-create-action, .pk-mobile-nav .pk-mobile-create, .pk-join-trigger, .pk-server-create-button, .pk-chat-toggle, .pk-chat-send, .pk-message-send, .pk-invite-channel) { transition: none; }
}
@media (prefers-contrast: more) {
  body.pk-obsidian {
    --pk-muted: #d0cbd2;
    --pk-border: #8b7d91;
    --pk-glass-edge: #ada0b4;
    --pk-glass-edge-soft: #8b7d91;
    --pk-glass-control: #151219;
    --pk-glass-chrome: #111015;
    --pk-glass-panel: #17131c;
    --pk-ruby-material: #3d152c;
    --pk-ruby-bevel: inset 0 1px #e6c5da;
  }
  body.pk-obsidian .pk-optics { display: none; }
  body.pk-obsidian :is(.pk-control, .fs-button, .pk-submit, .pk-chat-field, .pk-message-field, .pk-composer-caption, .pk-invite-channel, .pk-chat-send, .pk-message-send) { border-color: #c4abc7; }
  body.pk-obsidian :is(.pk-rail a, .pk-mobile-nav a)[aria-current="page"] { background: #332337; box-shadow: inset 0 0 0 1px #c8abc9; }
  body.pk-obsidian :is(input, textarea)::placeholder { color: #c4bacb; }
}
@media (forced-colors: active) {
  body.pk-obsidian { background: Canvas; color: CanvasText; }
  body.pk-obsidian .pk-optics { display: none; }
  body.pk-obsidian *, body.pk-obsidian *::before, body.pk-obsidian *::after, body.pk-obsidian dialog::backdrop {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }
  body.pk-obsidian #pk-notification-panel,
  body.pk-obsidian #suggest-results:not([hidden]),
  body.pk-obsidian :is(.pk-top, .pk-rail, .pk-mobile-nav, .pk-notification-panel, .pk-chat-panel, .pk-invite-dialog, .pk-sheet-panel, .pk-dialog, .pk-confirm, .fs-confirm, .pk-call-card, .pk-card, .pk-claim-card, .pk-media-editor > section, .pk-media-editor-panel, .pk-message-inbox, .pk-message-conversation, .pk-message-thread-head, .pk-message-reply, .pk-chat-compose, .pk-message-bubble, .pk-chat-message, .pk-account nav, .pk-join-menu nav, .pk-post-more nav, .pk-creator-more nav, .pk-contact-menu nav, .pk-message-more nav, .pk-profile-post-options nav, .pk-post-menu-list, .pk-chat-emoji) { background: Canvas; color: CanvasText; border-color: CanvasText; }
  body.pk-obsidian :is(.fs-button, .pk-submit, .pk-join-trigger, .pk-server-create-button, .pk-top .pk-create-action, .pk-mobile-nav .pk-mobile-create, .pk-chat-send, .pk-message-send, .pk-invite-channel, .pk-control, input, textarea, select) { background: ButtonFace; color: ButtonText; border-color: ButtonText; }
  body.pk-obsidian :is(a, button, input, textarea, select):focus-visible { outline: 2px solid Highlight; }
  body.pk-obsidian :is(.pk-top .pk-create-action, .pk-mobile-nav .pk-mobile-create) .pk-new-svg { filter: none; }
}

/* Stream navigation uses only text contrast, including hover and selection. */
body.pk-obsidian .pk-home-top .pk-feed-toggle,
body.pk-obsidian .pk-home-top .pk-feed-toggle a,
body.pk-obsidian .pk-home-top .pk-feed-toggle a:is(:hover, :focus-visible, [aria-current="page"]) {
  background: transparent;
  background-image: none;
  border: 0;
  box-shadow: none;
  text-shadow: none;
}
body.pk-obsidian .pk-home-top .pk-feed-toggle a { color: #929598; }
body.pk-obsidian .pk-home-top .pk-feed-toggle a[aria-current="page"] { color: #fff; }
.pk-motion-control { min-height: 44px; padding: 10px 12px; border: 0; color: inherit; background: transparent; text-align: left; font: inherit; cursor: pointer; }

@media (max-width:899px) {
 body.pk-obsidian .pk-mobile-nav.is-compact { grid-template-columns:repeat(5,minmax(44px,1fr));min-height:58px; }
 body.pk-obsidian .pk-mobile-nav.is-compact .pk-mobile-create { width:44px;height:44px;min-width:44px;min-height:44px;border-radius:16px; }
 body.pk-obsidian .pk-mobile-nav.is-compact .pk-mobile-create .pk-new,
 body.pk-obsidian .pk-mobile-nav.is-compact .pk-mobile-create .pk-new-svg { width:27px;height:27px; }
}
