/* The product is the page. Detailed reference UI lives in the drawer. */
body.site-theme:has(.product-page) { --product-gutter:clamp(24px,5vw,88px); --product-ground:#151515; }
body.site-theme:not(.carousel-mode) > main.product-page { width:100%!important; max-width:none!important; padding:0!important; margin:0!important; }
body.site-theme .product-page > .dossier-bar { position:fixed; top:0; left:50%; transform:translateX(-50%); z-index:61; width:calc(100% - 2 * var(--product-gutter)); max-width:1440px; min-height:88px; margin:0 auto; padding:20px 0 16px; border:0; background:transparent; pointer-events:none; }
body.site-theme .product-page > .dossier-bar > * { pointer-events:auto; }
/* The header floats over the page. On the standard device pages, sections and related devices scroll
   up under it, so a scrim of the page ground keeps them off the wordmark. The three tour pages keep
   their frame clear and fade the model themselves. */
body.site-theme .product-page:not(.td-product):not(:has(.td-tour)) > .dossier-bar::before { content:''; position:absolute; top:0; left:50%; width:100vw; height:calc(100% + 30px); transform:translateX(-50%); background:linear-gradient(var(--site-ground) 58%, transparent); pointer-events:none; z-index:-1; }
body.site-theme .product-page .dossier-nav { margin-left:auto; }
body.site-theme .product-page .dossier-nav::before { display:none; }
body.site-theme .product-page .dossier-crumbs { display:none; }
.product-page svg,.product-chat svg,.product-details-modal svg { width:20px; height:20px; flex:none; }
.product-story { position:relative; height:100svh; }
.product-story.is-enhanced.has-drawing { height:200svh; }
.product-story.is-enhanced.has-assembly { height:350svh; }
.product-story.is-enhanced.has-journey { height:500svh; }
.product-stage { position:sticky; top:0; height:100svh; width:100%; overflow:hidden; isolation:isolate; }
.product-object { position:absolute; inset:0; }
.product-canvas { position:absolute; inset:0; width:100%; height:100%; display:block; opacity:0; cursor:grab; touch-action:pan-y; outline-offset:-4px; }
.product-canvas:active { cursor:grabbing; }
.product-story.is-ready .product-canvas { opacity:1; transition:opacity .6s; }
.product-photo { position:absolute; left:48%; right:6%; top:8%; bottom:15%; display:grid; place-items:center; transition:opacity .5s; pointer-events:none; }
.product-photo > img { position:static!important; display:block; max-width:100%!important; max-height:100%!important; width:100%!important; height:100%!important; object-fit:contain; transform:none!important; }
.product-story.is-ready .product-photo { opacity:0; visibility:hidden; }
.product-intro { position:absolute; top:26%; left:max(var(--product-gutter),calc((100% - 1440px)/2)); max-width:40%; pointer-events:none; }
@media(min-width:701px) { [data-product-slug="lilygo-t-deck-plus"] .product-intro { top:50%; } }
body.site-theme .product-page .product-intro h1 { margin:12px 0 20px; font-size:clamp(48px,6.5vw,104px)!important; line-height:.98!important; letter-spacing:-.065em!important; text-transform:none!important; text-wrap:balance; }
.product-maker { margin:0; font-size:12px; font-weight:500; color:#aaa79f; letter-spacing:.1em; text-transform:uppercase; }
.product-purpose { max-width:27ch; margin:0; font-size:clamp(17px,1.6vw,23px); line-height:1.5; color:#b8b7af; }
.product-chapter { position:absolute; top:max(100px,8%); left:var(--product-gutter); opacity:0; pointer-events:none; }
.product-chapter > p { margin:0; font-size:20px; color:#c4c2b9; }
body.site-theme .product-page .product-chapter h2 { margin:0; font-size:clamp(32px,4vw,62px)!important; line-height:1.08!important; letter-spacing:-.045em!important; text-transform:none!important; }
.product-drawing { position:absolute; inset:0; opacity:0; transform:scale(.84); pointer-events:none; }
.product-drawing.is-interactive { pointer-events:auto; }
.product-drawing-live,.product-drawing-poster { position:absolute; width:100%; height:100%; inset:0; }
.product-drawing-poster { object-fit:contain; }
.product-drawing.is-ready .product-drawing-poster { display:none; }
.product-drawing-caption { position:absolute; top:max(100px,8%); left:var(--product-gutter); right:var(--product-gutter); display:flex; align-items:center; justify-content:space-between; opacity:0; pointer-events:none; }
.product-drawing-caption > span { font-size:20px; }
.product-drawing-caption a { display:grid; place-items:center; width:44px; height:44px; color:#c4c2b9; }
.product-drawing-caption.is-active { pointer-events:auto; }
.product-scroll-cue { position:absolute; left:var(--product-gutter); bottom:16%; display:flex; align-items:center; gap:14px; margin:0; color:#9f9d94; font-size:12px; }
.product-scroll-cue svg { width:14px; height:28px; }
.product-object-hint { position:absolute; right:var(--product-gutter); bottom:16%; display:flex; align-items:center; gap:8px; color:#8f8f87; font-size:11px; }
body.site-theme .product-object-hint button { display:grid; place-items:center; width:36px; min-height:36px; padding:0; background:none; border:0; color:inherit; }
.product-object-hint svg { width:14px; height:14px; }
.product-scene-status { position:absolute; left:var(--product-gutter); bottom:10%; max-width:36ch; font-size:12px; color:#aaa79f; }
.product-story-anchors { position:absolute; inset:0; pointer-events:none; }
.product-story-anchors span { position:absolute; width:1px; height:1px; }
.product-story-anchors #teardown { top:28%; }
.product-story-anchors #inside { top:42%; }
.product-story-anchors #circuit { top:65%; }
.product-story-anchors #blueprint { top:80%; }
.product-end { max-width:1080px; padding:100px var(--product-gutter) 120px; margin:auto; text-align:center; }
.product-end > p { color:#aaa79f; font-size:13px; }
body.site-theme .product-page .product-end h2 { margin:16px 0 32px; font-size:clamp(34px,4.2vw,58px)!important; text-transform:none!important; letter-spacing:-.045em!important; }
.product-end > div { display:flex; justify-content:center; align-items:center; gap:16px; }
.product-end > div > a:not(.sh-buy) { display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:0 20px; border:1px solid #fef9ed24; border-radius:999px; font-size:14px; }
.product-related { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:88px; text-align:left; }
.product-related a { display:grid; grid-template-columns:1fr 20px; gap:12px; align-items:center; font-size:14px; }
.product-related img { grid-column:1/-1; width:100%; height:170px; object-fit:contain; }
.product-dock { position:fixed; z-index:30; bottom:max(22px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); display:flex; gap:6px; align-items:center; width:min(610px,calc(100% - 32px)); padding:6px; background:#23241fe8; border:1px solid #fef9ed20; border-radius:999px; backdrop-filter:blur(20px); box-shadow:0 12px 40px #0003; }
body.site-theme .product-dock button { border:0; border-radius:999px; color:var(--site-paper); background:none; }
body.site-theme .product-dock .product-ask-open { flex:1; min-width:0; display:flex; gap:12px; align-items:center; padding:0 16px; min-height:48px; text-align:left; font-size:14px; }
.product-ask-open > svg { color:#c5c5ba; width:18px; height:18px; }
.product-ask-open > span { min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.product-ask-open kbd { margin-left:auto; color:#7e8177; font-size:16px; }
.product-dock-files { display:grid; place-items:center; min-width:44px; min-height:44px; color:#b8bbae; border-left:1px solid #fef9ed14; }
body.site-theme .product-dock :is(button,a):focus-visible { outline:2px solid #e6da7e; outline-offset:2px; }
.product-dock-buy { flex:none; }
.product-dock .buy-pill { min-height:46px!important; padding:0 16px!important; font-size:13px!important; gap:8px!important; }
.product-dock .buy-pill svg { width:16px!important; height:16px!important; }
.product-dock .buy-pill .buy-pill-arrow { width:28px; height:28px; }
.product-buy { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:0 18px; border-radius:999px; background:#fbe154; color:#151515; font-size:14px; }
.product-buy small { font-size:12px; opacity:.72; }
.product-details { margin:0 auto; width:calc(100% - 2 * var(--product-gutter)); max-width:1080px; }
.product-details > summary { display:flex; align-items:center; gap:12px; cursor:pointer; padding:22px 0; border-top:1px solid #fef9ed26; }
.product-details > summary > span:last-child { margin-left:auto; color:#989b90; font-size:12px; }
.product-details.is-enhanced { display:none; }
.product-details-content { padding:30px 0; }
body.site-theme dialog.product-details-modal { position:fixed; inset:0 0 0 auto; width:min(720px,100%); height:100dvh; max-height:none; max-width:none; margin:0; padding:0; border:0; border-left:1px solid #fef9ed20; background:#1b1c19; color:#fef9ed; border-radius:0; overflow:auto; overscroll-behavior:contain; }
.product-details-modal::backdrop { background:#060706a8; backdrop-filter:blur(4px); }
.product-details-modal .product-details-content { padding:0 36px 48px; }
.product-details-header { position:sticky; top:0; z-index:3; display:flex; justify-content:space-between; align-items:center; padding:28px 0 24px; background:#1b1c19; }
.product-details-header span,.product-chat header > div > span { display:block; color:#8f9287; font-size:11px; margin-bottom:6px; }
body.site-theme .product-details-header h2 { font-size:28px!important; line-height:1.1!important; margin:0; text-transform:none!important; }
body.site-theme .product-details-header button,body.site-theme .product-chat header button { display:grid; place-items:center; width:44px; height:44px; padding:0; background:none; border:0; color:#c5c5ba; border-radius:50%; }
.product-detail-nav { display:flex; gap:28px; border-bottom:1px solid #fef9ed24; margin-bottom:32px; padding:0 0 16px; font-size:13px; }
.product-detail-nav small { color:#9b9d90; margin-left:4px; font-size:10px; }
.product-details-content section { margin:0 0 38px; scroll-margin-top:100px; }
body.site-theme .product-details-content h3 { margin:0 0 18px; font-size:19px!important; text-transform:none!important; }
.product-file-search { display:block; margin:0 0 14px; }
body.site-theme .product-file-search input { min-height:44px; width:100%; margin:0; padding:0 14px; border:1px solid #fef9ed20; background:#ffffff04; color:#fef9ed; font-size:14px; border-radius:8px; }
.product-files ul { list-style:none; margin:0; padding:0; }
.product-file { display:flex; align-items:center; gap:8px; padding:6px 0; border-bottom:1px solid #fef9ed13; }
.product-file[hidden] { display:none; }
.product-file > a:first-child { display:flex; align-items:center; gap:12px; flex:1; min-width:0; min-height:52px; }
.product-file-format { width:42px; flex:none; color:#9eaa96; font-size:9px; letter-spacing:.04em; }
.product-file-name { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.product-file small { color:#858b7e; font-size:10px; white-space:nowrap; margin-left:auto; }
.product-file-download { width:36px; min-height:44px; display:grid; place-items:center; color:#a4ac9b; }
.product-file-download svg { width:16px; height:16px; }
.product-source-downloads { display:flex; flex-wrap:wrap; gap:12px 20px; margin-top:22px; }
.product-source-downloads > a,.product-source-downloads > button { display:inline-flex; gap:6px; align-items:center; min-height:32px; font-size:12px; color:#b7bcac; }
.product-source-downloads > button { background:none; border:0; padding:0; }
.product-source-downloads svg { width:14px; height:14px; }
.product-source-downloads > p { width:100%; font-size:12px; }
.product-specs details { border-bottom:1px solid #fef9ed13; }
.product-specs summary,.product-notes > summary,.product-shops > summary { cursor:pointer; padding:16px 0; font-size:14px; }
.product-specs dl { margin:0; padding-bottom:16px; }
.product-specs dl > div { display:grid; grid-template-columns:130px 1fr; gap:24px; padding:7px 0; font-size:12px; }
.product-specs dt { color:#929989; }
.product-specs dd { margin:0; color:#dadcd1; }
.product-specs dd a { margin-left:8px; color:#919b86; }
.product-resources > a,.product-shops a { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #fef9ed13; font-size:13px; }
.product-resources svg { width:14px; height:14px; }
.product-notes { color:#969d8b; font-size:12px; line-height:1.75; }
.product-notes > a { display:inline-block; margin:12px 16px 0 0; }
.product-notes li { margin:8px 0; }
html:has(.product-details-modal[open]),html:has(.product-chat:modal) { overflow:hidden; }
body.site-theme dialog.product-chat { position:fixed; inset:auto 24px 88px auto; display:none; flex-direction:column; width:min(430px,calc(100% - 32px)); height:min(620px,calc(100dvh - 130px)); max-width:none; max-height:none; margin:0; padding:0; border:1px solid #fef9ed24; border-radius:18px; background:#20211e; color:#fef9ed; box-shadow:0 24px 100px #0005; overflow:hidden; }
body.site-theme dialog.product-chat[open] { display:flex; z-index:50; }
.product-chat::backdrop { background:#05060565; }
.product-chat > header { display:flex; justify-content:space-between; align-items:center; padding:20px 22px 16px; border-bottom:1px solid #fef9ed14; }
body.site-theme .product-chat header h2 { margin:0; font-size:20px!important; line-height:1.2!important; text-transform:none!important; letter-spacing:-.03em!important; }
.product-chat-thread { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:24px; scroll-behavior:smooth; }
.product-chat-welcome { padding:14px 0 28px; }
body.site-theme .product-chat-welcome h3 { font-size:30px!important; line-height:1.15; letter-spacing:-.04em!important; margin:0 0 16px; text-transform:none!important; }
.product-chat-welcome p { font-size:13px; line-height:1.6; color:#a5ab9b; max-width:29ch; }
.product-message { margin:0 0 22px; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.product-message p { margin:0 0 12px; }
.product-message.is-user { margin-left:32px; padding:12px 16px; background:#ffffff07; border-radius:14px 14px 3px 14px; color:#d3d7c9; }
.product-message.is-user p { margin:0; }
.product-message.is-error { color:#ddbd8e; }
.product-message a { color:#e4e8bf; text-decoration:underline; text-underline-offset:3px; }
.product-message ul { padding-left:18px; }
.product-message button { display:inline; background:none; border:0; padding:0; color:#ece282; min-height:0!important; }
.product-chat-suggestions { padding:0 22px 14px; display:flex; flex-wrap:wrap; gap:6px; }
body.site-theme .product-chat-suggestions button { min-height:34px; padding:0 10px; border:1px solid #fef9ed1d; border-radius:6px; background:none; color:#afb6a4; font-size:11px; }
.product-chat-form { display:flex; gap:10px; align-items:flex-end; margin:0 16px; padding:8px 8px 8px 14px; background:#ffffff07; border:1px solid #fef9ed20; border-radius:12px; }
body.site-theme .product-chat-form textarea { flex:1; width:0; resize:none; padding:10px 0; margin:0; min-height:42px; max-height:100px; border:0; border-radius:0; background:none; color:#fef9ed; font-size:14px; line-height:1.5; outline:none; }
body.site-theme .product-chat-form button { display:grid; place-items:center; width:38px; min-height:38px; padding:0; border:0; border-radius:8px; background:#fbe154; color:#151515; }
.product-chat-form:focus-within { border-color:#e6d66888; }
.product-chat-form button:disabled { opacity:.4; }
.product-chat-foot { margin:10px 0 12px; text-align:center; color:#7e8773; font-size:9px; }
.product-thinking { display:flex; gap:5px; padding:10px 0; }
.product-thinking i { width:5px; height:5px; background:#bdc7af; border-radius:50%; animation:product-think 1.2s ease-in-out infinite; }
.product-thinking i:nth-child(2) { animation-delay:.15s; }
.product-thinking i:nth-child(3) { animation-delay:.3s; }
@keyframes product-think { 50% { opacity:.3; transform:translateY(-3px); } }
body.site-theme:has(.product-page) .site-menu-float { right:24px; bottom:24px; left:auto; translate:none; }
body.site-theme:has(.product-page) .gs-footer { margin-bottom:90px; }
body.site-theme .product-drawing .pdf-toolbar { display:none; }
body.site-theme .product-drawing .pdf-viewer { background:transparent; }
body.site-theme .product-drawing .pdf-scroll { overflow:hidden; }
body.site-theme .product-drawing .pdf-scroll { cursor:zoom-in; touch-action:pan-y; }
body.site-theme .product-drawing .pdf-scroll.is-zoomed { cursor:grab; touch-action:none; }
body.site-theme .product-drawing .pdf-scroll.is-zoomed:active { cursor:grabbing; }
body.site-theme .product-drawing .pdf-canvas { cursor:inherit; }
body.site-theme .product-drawing .pdf-page-picker { position:absolute; top:16px; left:16px; }
body.site-theme .product-drawing .pdf-page-picker select { background:#23241f; color:#c4c2b9; border:1px solid #ffffff1a; border-radius:6px; font-size:11px; padding:6px 10px; }
body.site-theme .product-drawing .pdf-drawing { padding:0; }
body.site-theme .product-drawing .pdf-canvas { box-shadow:none; filter:invert(.92) hue-rotate(180deg); }
/* The story's sheet is a fitted picture: the page keeps scrolling over it, and a click or tap
   opens it full screen. Only the full-screen sheet pans and zooms. */
body.site-theme .product-drawing :is(.pdf-viewer,kicanvas-embed) { pointer-events:none; }
body.site-theme .product-drawing-open { position:absolute; inset:0; z-index:2; width:100%; height:100%; padding:0; margin:0; border:0; border-radius:0; background:transparent; cursor:zoom-in; }
.product-drawing:not(.is-ready) .product-drawing-open { display:none; }
body.site-theme .product-drawing-open:focus-visible { outline:1px solid var(--site-yellow); outline-offset:-12px; }
body.site-theme .pdf-workspace .pdf-scroll { overflow:hidden; cursor:grab; touch-action:pan-y; }
body.site-theme .pdf-workspace .pdf-scroll.is-zoomed { touch-action:none; }
body.site-theme .pdf-workspace .pdf-scroll:active { cursor:grabbing; }
body.site-theme .pdf-workspace .pdf-drawing { display:block; position:relative; min-width:0; min-height:0; padding:0; }
/* Immersive viewers own the screen: native scrolling pans with momentum (one finger, trackpad,
   wheel), pinch and ctrl/cmd-scroll zoom where you point, double-tap zooms in and back out. */
body.site-theme .pdf-workspace.is-immersive .pdf-scroll,body.site-theme .pdf-workspace.is-immersive .pdf-scroll.is-zoomed { overflow:auto; touch-action:pan-x pan-y; overscroll-behavior:contain; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
body.site-theme .pdf-workspace.is-immersive .pdf-scroll::-webkit-scrollbar { display:none; }
body.site-theme .pdf-workspace.is-immersive .pdf-scroll:not(.is-zoomed) { cursor:zoom-in; }
.pdf-workspace .pdf-paper { position:absolute; }
body.site-theme .pdf-camera-tools { position:absolute; left:24px; bottom:24px; display:flex; gap:2px; padding:3px; border:1px solid #ffffff1a; border-radius:8px; background:#23241fee; }
body.site-theme .pdf-camera-tools button { width:32px; min-height:32px; border:0; padding:0; background:none; color:#c4c2b9; font-size:17px; border-radius:5px; }
body.site-theme .pdf-camera-tools button:nth-child(2) { width:52px; font-size:11px; }
body.site-theme .pdf-camera-tools button:hover { background:#ffffff0a; }
body.site-theme .blueprint-camera-tools select { max-width:180px; min-width:70px; border:0; background:transparent; color:#deddd5; font:inherit; font-size:12px; padding:0 8px; }
body.site-theme .blueprint-camera-tools option { background:#23241f; }
body.site-theme .blueprint-camera-tools button:nth-child(2) { width:32px; font-size:17px; }
body.site-theme .blueprint-camera-tools button:nth-child(3) { width:40px; font-size:11px; }
/* The sharp tile is replaced as you zoom. Touches stay bound to the element they began on, so a
   pinch that started on a tile went dead when it was swapped; let touches land on the sheet. */
body.site-theme .pdf-workspace .pdf-canvas { position:absolute!important; pointer-events:none; }
body.site-theme .pdf-workspace .pdf-component { position:absolute; z-index:2; min-height:12px; min-width:14px; padding:0; margin:0; border:1px solid transparent; border-radius:2px; background:transparent; cursor:pointer; transform:translate(-2px,-2px); }
body.site-theme .pdf-workspace .pdf-component:is(:hover,:focus-visible,.is-selected) { border-color:#fbe154; background:#fbe15424; outline:none; box-shadow:0 0 0 5px #fbe1540a; }
body.site-theme .pdf-workspace .pdf-component.is-symbol { transform:none; }
/* KiCanvas paints its own host aqua until its canvas draws (and for good without WebGL). */
body.site-theme .product-drawing kicanvas-embed { display:block; height:100%; width:100%; background:#151515; }
@media(max-width:1000px) {
 body.site-theme .product-page > .dossier-bar { min-height:76px; }
 body.site-theme .product-page .dossier-nav { display:none; }
 .product-intro { top:22%; max-width:44%; }
 body.site-theme:has(.product-page) .site-menu-float { bottom:88px; right:18px; }
}
@media(max-width:700px) {
 body.site-theme:has(.product-page) { --product-gutter:24px; }
 body.site-theme .product-page > .dossier-bar { min-height:64px; padding:10px 0; }
 .product-stage { height:calc(100svh - 0px); }
 .product-story.is-enhanced.has-journey { height:430svh; }
 .product-intro { left:24px; right:24px; top:12%; max-width:none; text-align:center; }
 body.site-theme .product-page .product-intro h1 { font-size:clamp(36px,10vw,62px)!important; margin:10px 0 12px; }
 .product-maker { font-size:10px; }
 .product-purpose { font-size:15px; max-width:30ch; margin:auto; line-height:1.45; }
 .product-object { top:calc(4% + 18% * var(--object-intro,1)); bottom:calc(10% + 2% * var(--object-intro,1)); }
 .product-photo { inset:2% 12%; }
 .product-chapter { top:max(88px,10%); left:24px; }
 body.site-theme .product-page .product-chapter h2 { font-size:32px!important; }
 .product-chapter > p { font-size:20px; }
 .product-scroll-cue { bottom:17%; font-size:10px; gap:8px; }
 .product-object-hint { bottom:17%; font-size:10px; }
 .product-drawing { inset:0; }
 .product-drawing-caption { top:max(88px,10%); left:24px; right:24px; }
 .product-drawing-caption > span { font-size:22px; }
 .product-dock { width:calc(100% - 24px); padding:5px; gap:2px; bottom:max(12px,env(safe-area-inset-bottom)); }
 body.site-theme .product-dock .product-ask-open { padding:0 10px; gap:8px; font-size:12px; min-height:44px; }
 .product-ask-open kbd { display:none; }
 .product-dock-files { min-width:36px; }
 .product-dock .buy-pill { padding:0 12px!important; min-height:42px!important; font-size:12px!important; }
 .product-dock .buy-pill .bp-price,.product-dock .buy-pill .bp-merchant { display:none; }
 .product-dock .product-buy { min-height:42px; padding:0 12px; gap:6px; font-size:12px; }
 .product-dock .product-buy small { display:none; }
 .product-end { padding:72px 24px; }
 .product-end > div { gap:8px; }
 .product-related { gap:12px; margin-top:54px; }
 .product-related a { font-size:11px; }
 .product-related img { height:100px; }
 .product-details-modal .product-details-content { padding:0 22px 44px; }
 .product-details-header { padding:22px 0; }
 .product-detail-nav { gap:20px; }
 .product-file-format { width:30px; font-size:8px; }
 .product-file > a:first-child { gap:8px; }
 .product-file-name { font-size:12px; }
 .product-file small { display:none; }
 .product-specs dl > div { grid-template-columns:95px 1fr; gap:16px; }
 body.site-theme dialog.product-chat { inset:auto 8px max(8px,env(safe-area-inset-bottom)); width:calc(100% - 16px); height:min(620px,calc(100dvh - 70px)); border-radius:18px; }
 body.site-theme:has(.product-page) .site-menu-float { bottom:78px; right:14px; min-height:36px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
 .product-thinking i { animation:none; }
 .product-chat-thread { scroll-behavior:auto; }
 .product-canvas,.product-photo { transition:none!important; }
}
body.site-theme .product-story.is-fallback { height:200svh; }
body.site-theme .product-story.is-fallback:not(.has-drawing) { height:100svh; }
body.site-theme .product-source-downloads [data-source-collection] { display:flex; flex-wrap:wrap; gap:10px; width:100%; }
body.site-theme .product-source-downloads [data-source-collection] :is(button,a) { display:inline-flex; align-items:center; gap:8px; padding:0; background:none; border:0; color:#c3c8b8; font-size:12px; min-height:36px; }
body.site-theme .product-source-downloads [data-source-collection] [hidden] { display:none; }
.product-source-downloads [data-source-status] { flex-basis:100%; font-size:11px; }
/* Every full-screen file or schematic dialog: a hairline bar with the name on the left and
   uppercase words on the right, and the file filling everything below it. */
body.site-theme dialog.product-file-preview { position:fixed; inset:0; width:100%; max-width:none; height:100dvh; max-height:none; padding:0; margin:0; border:0; border-radius:0; background:var(--site-ground); color:var(--site-paper); overflow:hidden; }
body.site-theme dialog.product-file-preview[open] { display:grid; grid-template-rows:auto minmax(0,1fr); grid-template-columns:minmax(0,1fr); }
.product-file-preview > * { min-width:0; }
.product-file-preview header { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:64px; padding:10px var(--site-gutter); border-bottom:1px solid var(--site-soft-rule); }
body.site-theme .product-file-preview header > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:500 20px/1.2 var(--site-display); letter-spacing:-.02em; color:var(--site-paper); }
.product-file-preview header > div { display:flex; align-items:center; flex:none; }
body.site-theme .product-file-preview header > div :is(a,button) { display:inline-flex; align-items:center; width:auto; min-height:44px; padding:0 12px; border:0; border-radius:0; background:none; color:var(--site-muted); font:500 12px/1 var(--site-display); letter-spacing:.04em; text-transform:uppercase; text-decoration:none; cursor:pointer; }
body.site-theme .product-file-preview header > div :is(a,button):hover,body.site-theme .product-file-preview header > div button:last-child { color:var(--site-paper); }
.product-file-preview-stage { position:relative; min-height:0; }
.product-file-preview-stage canvas { width:100%; height:100%; }
body.site-theme .product-file-preview-stage > .pdf-viewer { position:absolute; inset:0; width:100%; height:100%; background:transparent; }
body.site-theme .product-file-preview-stage .pdf-scroll { position:absolute; inset:0; background:transparent; }
/* Sheets read on the dark ground like the T-Deck's; the hue turn keeps coloured wiring its colour. */
body.site-theme .product-file-preview .pdf-canvas { filter:invert(.92) hue-rotate(180deg); box-shadow:none; }
.product-file-preview > p[role=status] { position:absolute; left:0; right:0; bottom:22px; margin:0; text-align:center; font-size:12px; color:var(--site-muted); pointer-events:none; }
.product-file-preview > p[role=status]:empty { display:none; }
.product-file-preview::backdrop { background:#0b0b0b; }
/* A multi-sheet PDF names its sheet in a small tag in the corner, never a full-width menu. */
body.site-theme .product-file-preview .blueprint-camera-tools.is-sheets { left:var(--site-gutter); bottom:18px; padding:0; gap:0; border:1px solid var(--site-soft-rule); border-radius:0; background:var(--site-ground); }
body.site-theme .product-file-preview .blueprint-camera-tools.is-sheets select { height:36px; padding:0 12px; color:var(--site-paper); font:500 12px/1 var(--site-display); letter-spacing:.04em; }
body.site-theme .pdf-workspace.is-immersive .pdf-page-picker { position:absolute; left:var(--site-gutter); bottom:18px; z-index:3; width:auto; }
body.site-theme .pdf-workspace.is-immersive .pdf-page-picker select { width:auto!important; height:36px!important; min-height:36px!important; padding:0 28px 0 12px!important; border:1px solid var(--site-soft-rule)!important; border-radius:0!important; background-color:var(--site-ground)!important; color:var(--site-paper)!important; font:500 12px/1 var(--site-display)!important; letter-spacing:.04em; }
.product-dock .sh-buy { display:inline-flex; align-items:center; min-height:46px!important; padding:0 7px 0 18px!important; gap:9px!important; border:0!important; border-radius:999px!important; font-size:13px!important; background:#fbe154!important; color:#151515!important; }
.product-dock .sh-buy-from { display:none!important; }
.product-dock .sh-buy-arrow { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:#151515; color:#fbe154; }
.product-dock .sh-buy-arrow svg { width:16px; height:16px; }
.product-dock .sh-buy-price { color:#706122; font-size:12px; }
.product-listed-price { display:flex; gap:8px; align-items:baseline; margin:16px 0; font-size:16px; }
.product-listed-price small { color:#919989; font-size:11px; }
.product-shops ul { list-style:none; margin:0; padding:0; }
.product-shops li { padding:0; }
.product-shops .sh-rows a { display:flex; justify-content:space-between; padding:12px 0; }
@media(max-width:700px) { .product-dock .sh-buy-price { display:none; } .product-dock .sh-buy { padding:0 6px 0 12px!important; min-height:42px!important; gap:6px!important; font-size:12px!important; } .product-dock .sh-buy-arrow { width:26px;height:26px; } }
@media(max-width:700px) { body.site-theme .pdf-camera-tools { bottom:80px; left:14px; } }

/* Circuit details appear only after selecting real source geometry. */
.pdf-circuit-inspector { position:absolute; z-index:8; top:80px; right:24px; width:260px; max-height:48%; display:flex; flex-direction:column; background:#151515f5; color:#fef9ed; border:1px solid #fef9ed26; box-shadow:0 16px 48px #0003; }
.pdf-circuit-inspector[hidden] { display:none; }
.pdf-circuit-inspector > header { display:flex; gap:8px; align-items:center; min-height:52px; padding:0 12px; border-bottom:1px solid #fef9ed20; }
.pdf-circuit-inspector > header strong { flex:1; min-width:0; overflow-wrap:anywhere; font-size:13px; font-weight:500; }
body.site-theme .pdf-circuit-inspector button { border:0; border-radius:0; color:inherit; background:transparent; cursor:pointer; }
body.site-theme .pdf-circuit-inspector header button { min-width:36px; min-height:44px; padding:0; font-size:20px; }
.pdf-circuit-list { overflow:auto; overscroll-behavior:contain; padding:4px 0; }
body.site-theme .pdf-circuit-list button { display:flex; align-items:center; gap:12px; width:100%; min-height:38px; padding:8px 14px; text-align:left; font-size:11px; border-bottom:1px solid #fef9ed0d; }
.pdf-circuit-list button:hover { background:#fef9ed0c; }
.pdf-circuit-list small { width:18px; flex:none; color:#a8a69f; }
.pdf-circuit-list span { overflow-wrap:anywhere; }
.pdf-net-overlay { position:absolute; inset:0; pointer-events:none; z-index:5; }
body.site-theme .pdf-net-pin { position:absolute; width:12px; height:12px; min-height:12px; padding:0; border-radius:50%; transform:translate(-50%,-50%); background:#fbe154bb; border:1px solid #aa8500; box-shadow:0 0 0 4px #fbe15430; pointer-events:auto; cursor:pointer; }
body.site-theme .pdf-net-pin:hover { background:#fff06a; box-shadow:0 0 0 7px #fbe15445; }
@media(max-width:700px) {
 .pdf-circuit-inspector { top:auto; bottom:106px; right:16px; width:215px; max-height:220px; }
 .pdf-circuit-inspector > header { min-height:44px; }
}

.product-connections { position:absolute; inset:0; opacity:0; pointer-events:none; display:grid; grid-template-rows:minmax(0,1fr); place-items:center; padding:4vh 5vw 12vh; background:#151515; }
.product-connections.is-interactive { pointer-events:auto; }
.product-connections > svg { width:100%; height:100%; max-width:1100px; }
.iso.tdeck-connections { --anatomy-paper:#151515; --anatomy-top:#292a28; --anatomy-hi:#d7d5ca; --anatomy-mid:#878a80; --anatomy-lo:#55594f; --anatomy-faint:#31352d; --anatomy-lit:#fbe154; }
.tdeck-connections .board-mount-hole { fill:#101110; stroke:#6a6d60; stroke-width:.7; }
.board-map-part { cursor:pointer; transition:opacity .2s; }
.board-map-part.is-selected .iso-top { fill:#5d5940; }
.board-map-part:hover .iso-top,.board-map-part:focus-visible .iso-top { fill:#77704c; }
.board-map-part:focus-visible { outline:none; }
body.site-theme .product-page .product-object.is-board-map { z-index:4; inset:auto auto 110px 24px; width:230px; height:280px; border:1px solid #fef9ed20; background:#151515; border-radius:0; }
.product-object.is-board-map .product-photo { inset:8%; }
@media(max-width:700px) {
 .product-file-preview header { min-height:56px; padding:6px 16px; }
 body.site-theme .product-file-preview header > span { font-size:17px; }
 body.site-theme .product-file-preview header > div :is(a,button) { padding:0 8px; }
 body.site-theme .pdf-workspace.is-immersive .pdf-page-picker { left:16px; }
 .product-connections { padding:6vh 0 14vh; }
 body.site-theme .product-page .product-object.is-board-map { left:12px; bottom:110px; width:122px; height:180px; }
}

.connection-caption { position:absolute; top:100px; left:var(--product-gutter); display:flex; flex-direction:column; gap:6px; margin:0; color:#fef9ed88; font-size:11px; }
.connection-caption span { color:#fef9ed; font-size:16px; }
.board-map-part.is-selected .iso-edge { stroke:#fbe154; stroke-width:1; }
.tdeck-connections .iso-wire .iso-line { stroke-width:1.4; stroke-dasharray:4 5; }
.tdeck-connections .iso-wire-end { fill:#fbe154; }
