.lt-sheet-open { overflow:hidden; overscroll-behavior:none; }
:where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) { box-sizing:border-box; }
:where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) * { box-sizing:border-box; }
:where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) [hidden] { display:none!important; }
:where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) button { cursor:pointer; font:inherit; }
:where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) :is(a,button,select,summary):focus-visible { outline:2px solid #bbb; outline-offset:4px; }
.lt-eyebrow { display:block; font:10px var(--font-mono,monospace); letter-spacing:.14em; color:#aaa; }
.lt-primary,.lt-secondary { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 18px; border:1px solid #444; background:#ddd; color:#111; text-decoration:none; }
.lt-primary:hover { background:#fff; }
.lt-secondary { background:transparent; color:#ccc; border-color:#333; }
.lt-secondary:hover { border-color:#888; color:#fff; }
.lt-context-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:26px; }
.lt-context-grid>div { border-top:1px solid #333; padding-top:24px; }
.lt-context-grid h3 { margin:12px 0; font-size:20px; }
.lt-context-grid p { font-size:14px; }
.lt-context-grid a { font-size:13px; }
.lt-navigation-note { font-size:12px; margin-top:18px; }
.live-preview-page .site-footer { color:#999; padding-bottom:100px; }
.live-preview-page .site-footer span { display:block; margin:12px auto; max-width:55ch; color:#999; font-size:11px; }
.lt-launcher-wrap { position:fixed; z-index:1001; bottom:max(20px,env(safe-area-inset-bottom)); right:max(20px,env(safe-area-inset-right)); max-width:calc(100vw - 32px); }
.lt-launcher { position:relative; display:flex; align-items:center; gap:12px; min-height:52px; padding:7px 12px 7px 7px; border:1px solid #383838; border-radius:3px; background:#101010; color:#ddd; text-align:left; box-shadow:0 8px 24px #0005; }
.lt-launcher::before { content:''; position:absolute; top:-1px; left:-1px; width:12px; height:12px; border-top:2px solid var(--accent-color,#fff); border-left:2px solid var(--accent-color,#fff); pointer-events:none; }
.lt-launcher-light { max-width:none; position:absolute; top:-1px; left:-1px; width:calc(100% + 2px); height:calc(100% + 2px); overflow:visible; pointer-events:none; fill:none; stroke:#ccc; filter:drop-shadow(0 0 2px #aaa8); }
.lt-launcher-glint { width:calc(100% - 1px); height:calc(100% - 1px); stroke-width:1.5px; stroke-linecap:round; stroke-dasharray:0.5 99.5; stroke-dashoffset:0.5; opacity:0; }
.lt-launcher-trail { stroke:#ddd2; stroke-dasharray:var(--lt-trail) calc(100 - var(--lt-trail)); stroke-dashoffset:var(--lt-trail); filter:blur(.6px); }
.lt-launcher-spark, .lt-launcher-flash { fill:#fff; stroke:none; opacity:0; filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 4px #ccca); }
.lt-launcher-spark { offset-anchor:0px 0px; offset-position:0px 0px; offset-rotate:0deg; }
@supports ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))) {
  .lt-launcher { background:rgba(16,16,16,.8); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
}
.lt-launcher:hover { border-color:#888; color:#fff; }
.lt-launcher>img { width:36px; height:48px; object-fit:contain; object-position:center; border-radius:2px; }
.lt-launcher strong { display:block; font:11px var(--font-mono,monospace); letter-spacing:.06em; text-transform:uppercase; }
.lt-launcher small { display:block; margin-top:3px; max-width:190px; color:#aaa; font-size:10px; line-height:1.5; }
.lt-launcher-arrow { font-size:16px; color:#999; margin-left:3px; }
.lt-launcher-wrap.is-minimized .lt-launcher { border-color:#555; }
.lt-panel { --lt-content-height:calc(min(420px,calc(100vw - 32px)) + 40px); color-scheme:dark; position:fixed; inset:auto 20px 20px auto; margin:0; width:min(420px,calc(100vw - 32px)); height:auto; max-width:none; max-height:calc(var(--lt-viewport-height,100dvh) - 40px); padding:0; border:1px solid #303030; border-radius:4px; background:#0a0a0a; color:#ddd; box-shadow:0 20px 60px #0008; overflow:hidden; z-index:1002; }
.lt-panel[open] { display:flex; flex-direction:column; }
.lt-panel::backdrop { background:#0009; }
.lt-panel-header { flex:none; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px 8px 20px; }
.lt-panel-header h2 { display:block; margin:0; padding:0; border:0; font-size:15px; font-weight:400; line-height:1.5; }
.lt-panel-header h2 span { color:#888; font-size:12px; margin-left:4px; }
.lt-panel-actions { display:flex; flex:none; gap:2px; }
.lt-icon-button { width:44px; height:44px; display:grid; place-items:center; border:0; background:transparent; color:#aaa; border-radius:2px; font-size:22px!important; line-height:1; }
.lt-icon-button:hover { color:#fff; background:#191919; }
.lt-status { flex:none; padding:0 20px 10px; margin:0; color:#aaa; font-size:11px; line-height:1.5; }
.lt-panel[data-connection="ready"] .lt-status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); padding:0; }
.lt-panel:is([data-connection="blocked"],[data-connection="error"],[data-connection="unconfirmed"]) .lt-status { color:#ddd; }
.lt-frame-slot { flex:0 1 var(--lt-content-height); height:var(--lt-content-height); min-height:100px; overflow:hidden; overscroll-behavior:contain; background:#0a0a0a; }
.lt-frame-slot>iframe { display:block; width:100%; height:100%; border:0; background:#0a0a0a; }
.lt-retry { flex:none; align-self:flex-start; min-height:44px; margin:0 18px 8px; padding:8px 12px; border:1px solid #444; border-radius:4px; background:#141414; color:#ddd; }
.lt-close-confirm { margin:auto; padding:28px; width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); border:1px solid #3c3c3c; border-radius:4px; background:#101010; color:#eee; }
.lt-close-confirm::backdrop { background:#000b; }
.lt-close-confirm h2 { margin-bottom:16px; padding:0; border:0; font-size:22px; }
.lt-close-confirm p { color:#aaa; font-size:14px; }
.lt-close-confirm>div { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.lt-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.lt-noscript { position:fixed; z-index:1005; bottom:0; background:#111; padding:16px; color:#ccc; }

.lt-mock { height:auto; min-height:0; display:flex; flex-direction:column; padding:8px; gap:8px; }
.lt-mock-stage { position:relative; flex:none; aspect-ratio:1; min-height:0; overflow:hidden; border:1px solid #292929; border-radius:8px; }
.lt-mock-stage>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.lt-mock-overlay { position:absolute; inset:8px auto auto 8px; max-width:55%; padding:6px; background:#0a0a0acc; }
.lt-mock-start { position:absolute; left:calc(var(--portrait-left,0px) + 12px); bottom:calc(var(--portrait-bottom,0px) + 12px); min-height:44px; padding:10px 14px; border:1px solid #555; border-radius:5px; background:#eee; color:#111; font:14px Helvetica,Arial,sans-serif; }
.lt-mock-start:disabled { background:#252525; color:#aaa; }
.lt-mock-disclosure { flex:none; margin:0; padding:0 4px; color:#aaa; font:11px/1.4 Helvetica,Arial,sans-serif; }
.lt-mock-overlay p { margin:0; color:#ccc; font-size:10px; }
.lt-mock[data-state="loading"] .lt-mock-stage>img { opacity:.2; }
.lt-mock[data-state="loading"] .lt-mock-stage:after { content:'Loading preview…'; position:absolute; inset:40% 0 auto; text-align:center; color:#bbb; font-size:13px; }
.lt-mock-controls { position:absolute; top:8px; right:8px; width:45%; padding:0 8px; background:#101010ed; font-size:11px; color:#aaa; }
.lt-mock-controls summary { display:flex; align-items:center; min-height:44px; cursor:pointer; }
.lt-mock-controls label { display:block; margin:0 0 8px; }
.lt-mock-controls select { width:100%; min-height:44px; padding:8px; margin-bottom:16px; border:1px solid #444; border-radius:2px; color:#ddd; background:#171717; font-size:12px; }

@media (max-width:600px) {
  .lt-context-grid { grid-template-columns:1fr; gap:12px; }
  .lt-panel { --lt-content-height:calc(100vw + 40px); width:100%; height:auto; max-height:calc(var(--lt-viewport-height,100dvh) - max(8px,env(safe-area-inset-top))); inset:auto 0 calc(var(--lt-viewport-bottom,0px)) auto; border-radius:10px 10px 0 0; border-width:1px 0 0; padding-bottom:env(safe-area-inset-bottom); }
  .lt-panel-header { padding:8px 10px 8px 18px; }
  .lt-status { padding-inline:18px; }
  .lt-launcher-wrap { bottom:max(12px,env(safe-area-inset-bottom)); right:12px; }
}
@media (max-height:500px) {
  .lt-panel { max-height:calc(var(--lt-viewport-height,100dvh) - 8px); bottom:4px; overflow:auto; }
  .lt-panel-header { padding-block:4px; }
}
@media (prefers-reduced-motion:reduce) {
  :where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) *, :where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) *:before, :where(.lt-launcher-wrap,.lt-panel,.lt-close-confirm,.lt-privacy-dialog) *:after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

.lt-privacy-button { min-width:44px; min-height:44px; border:0; padding:0 6px; background:transparent; color:#aaa; font:11px Helvetica,Arial,sans-serif!important; text-decoration:underline; text-underline-offset:3px; }
.lt-privacy-dialog { width:min(440px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); overflow:auto; padding:24px; border:1px solid #3c3c3c; border-radius:4px; background:#101010; color:#ddd; font:14px/1.6 Helvetica,Arial,sans-serif; }
.lt-privacy-dialog::backdrop { background:#000b; }
.lt-privacy-dialog h2 { margin:0 0 16px; padding:0; border:0; font-size:20px; }
.lt-privacy-dialog p { margin:0 0 16px; }
.lt-privacy-dialog a { color:#ddd; text-decoration:underline; }

/* External rules keep the approved trail offsets compatible with strict staging CSP. */
.lt-launcher-trail:nth-of-type(1) { --lt-trail:16; }
.lt-launcher-trail:nth-of-type(2) { --lt-trail:14; }
.lt-launcher-trail:nth-of-type(3) { --lt-trail:12; }
.lt-launcher-trail:nth-of-type(4) { --lt-trail:10; }
.lt-launcher-trail:nth-of-type(5) { --lt-trail:8; }
.lt-launcher-trail:nth-of-type(6) { --lt-trail:6; }
.lt-launcher-trail:nth-of-type(7) { --lt-trail:4; }
.lt-launcher-trail:nth-of-type(8) { --lt-trail:2; }
