.start{place-items:center;min-height:100vh;padding:48px 24px;display:grid}.start-inner{width:min(620px,100%)}.brand{color:var(--text-2);align-items:center;gap:10px;margin:0 0 40px;font-size:14px;display:flex}.start h1{letter-spacing:-.01em;margin:0 0 10px;font-size:clamp(28px,4vw,38px);font-weight:650;line-height:1.25}.lead{color:var(--text-2);margin:0 0 32px}.drop-zone{border:1.5px dashed var(--border-strong);background:var(--panel);text-align:center;cursor:pointer;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:240px;padding:24px;transition:border-color .15s,background-color .15s;display:flex;position:relative}.drop-zone:hover,.drop-zone.is-dragging{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--panel))}.drop-zone:focus-within{outline:2px solid var(--accent-strong);outline-offset:3px}.drop-zone input{opacity:0;width:1px;height:1px;position:absolute}.drop-icon{color:var(--text-3);margin-bottom:8px;transition:color .15s,transform .15s}.drop-zone.is-dragging .drop-icon{color:var(--accent-strong);transform:translateY(-3px)}.drop-title{font-size:18px;font-weight:600}.drop-sub{color:var(--text-2);font-size:14px}.drop-link{color:var(--accent-strong);text-underline-offset:3px;margin-left:2px;text-decoration:underline}.drop-loading{color:var(--text-2);display:none}.drop-zone.is-loading{pointer-events:none}.drop-zone.is-loading>:is(svg,.drop-title,.drop-sub){display:none}.drop-zone.is-loading .drop-loading{display:block}.start-error{border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 10%, transparent);color:#ffb4b4;margin:16px 0 0;padding:12px 14px;font-size:14px}.recent{margin-top:28px}.recent h2{color:var(--text-3);letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:600}.recent-list{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.recent-item{position:relative}.recent-open{border:1px solid var(--border);background:var(--panel);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:8px 8px 10px;transition:border-color .12s,background-color .12s;display:flex}.recent-open:hover{border-color:var(--border-strong);background:var(--panel-2)}.recent-thumb{aspect-ratio:16/9;background:#26282d;border-radius:6px;margin-bottom:4px;display:block;overflow:hidden}.recent-thumb img{object-fit:contain;width:100%;height:100%;display:block}.recent-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.recent-meta{color:var(--text-3);font-size:12px}.recent-remove{width:28px;height:28px;color:var(--text-2);opacity:0;cursor:pointer;background:#0f1013cc;border:0;border-radius:50%;place-items:center;transition:opacity .12s;display:grid;position:absolute;top:12px;right:12px}.recent-item:hover .recent-remove,.recent-remove:focus-visible{opacity:1}.recent-remove:hover{color:var(--text)}@media (hover:none){.recent-remove{opacity:1}}.recent-note{color:var(--text-3);margin:10px 0 0;font-size:12px}.link-btn{color:var(--text-2);font-size:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-left:6px;padding:0;text-decoration:underline}.link-btn:hover{color:var(--text)}.alt-mode{border:1px solid var(--border);background:var(--panel);border-radius:14px;align-items:center;gap:20px;margin-top:20px;padding:16px 20px;display:flex}.alt-mode h2{margin:0 0 4px;font-size:15px;font-weight:600}.alt-mode p{color:var(--text-2);margin:0;font-size:14px}.alt-mode .btn{flex:none}@media (width<=560px){.alt-mode{flex-direction:column;align-items:stretch}}.howto{color:var(--text-2);margin-top:40px;font-size:14px}.howto h2{color:var(--text-3);letter-spacing:.04em;margin:0 0 8px;font-size:13px;font-weight:600}.howto ol{margin:0;padding-left:20px;line-height:1.8}.deck{--notes-height:clamp(150px, 28vh, 320px);grid-template-columns:228px minmax(0,1fr);grid-template-rows:auto minmax(0, 1fr) var(--notes-height) auto;grid-template-areas:"top top""side stage""side notes""side hints";height:100vh;display:grid}.topbar{border-bottom:1px solid var(--border);background:var(--panel);grid-area:top;align-items:center;gap:16px;padding:10px 16px;display:flex}.deck-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:15px;font-weight:600;overflow:hidden}.page-indicator{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:13px}.deck[data-blank=black] .page-indicator:after{content:"黑幕中"}.deck[data-blank=white] .page-indicator:after{content:"白幕中"}.deck:is([data-blank=black],[data-blank=white]) .page-indicator:after{background:color-mix(in srgb, var(--danger) 18%, transparent);color:#ffb4b4;border-radius:999px;margin-left:8px;padding:2px 8px}.topbar-actions{gap:8px;display:flex}.btn{border:1px solid var(--border-strong);background:var(--panel-2);height:34px;color:var(--text);white-space:nowrap;cursor:pointer;border-radius:8px;padding:0 14px;font-size:14px;transition:background-color .12s,border-color .12s}.btn:hover{background:#25272d;border-color:#4b4f59}.btn-primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn-primary:hover{background:#6a93ff;border-color:#6a93ff}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--panel-2);color:var(--text);border-color:#0000}.btn-remote{align-items:center;gap:6px;display:inline-flex}.badge{color:#fff;font-variant-numeric:tabular-nums;text-align:center;background:#2f9e6a;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:12px;line-height:18px}.toast{z-index:10;border:1px solid var(--border-strong);background:var(--panel-2);color:var(--text);border-radius:999px;margin:0;padding:8px 16px;font-size:14px;position:fixed;top:68px;left:50%;transform:translate(-50%)}.deck.is-showing~.toast{display:none}.pair-dialog{border:1px solid var(--border-strong);background:var(--panel);width:min(640px,100vw - 32px);color:var(--text);border-radius:16px;padding:0}.pair-dialog::backdrop{background:#0009}.pair-head{justify-content:space-between;align-items:center;padding:16px 16px 0 24px;display:flex}.pair-head h2{margin:0;font-size:18px;font-weight:600}.pair-x{color:var(--text-2)}.pair-x:hover{background:var(--panel-2)}.pair-body{grid-template-columns:220px minmax(0,1fr);gap:24px;padding:16px 24px 8px;display:grid}.pair-qr{background:#fff;border-radius:12px;padding:10px}.pair-qr svg{width:100%;height:auto;display:block}.pair-steps{margin:0 0 16px;padding-left:20px;line-height:1.8}.pair-status{color:var(--text-2);align-items:center;gap:8px;margin:0 0 16px;font-size:14px;display:flex}.status-dot{background:var(--text-3);border-radius:50%;flex:none;width:8px;height:8px}.pair-status[data-status=ready] .status-dot{background:#f2c46d}.pair-status[data-status=connected] .status-dot{background:#3ecf8e}.pair-status[data-status=connected]{color:var(--text)}.pair-status[data-status=offline] .status-dot{background:var(--danger)}.pair-status[data-status=slow] .status-dot{background:#f2c46d}.pair-status[data-status=slow]{color:#f2c46d}.pair-url{gap:8px;margin-bottom:14px;display:flex}.pair-url input{border:1px solid var(--border-strong);background:var(--bg);min-width:0;height:34px;color:var(--text-2);font:inherit;border-radius:8px;flex:1;padding:0 10px;font-size:13px}.pair-note{color:var(--text-3);margin:0;font-size:13px;line-height:1.6}.pair-foot{justify-content:flex-end;gap:8px;padding:12px 24px 20px;display:flex}.pair-foot .btn-ghost{margin-right:auto}.viewer-dialog{width:min(700px,100vw - 32px)}.viewer-dialog .pair-body{grid-template-columns:240px minmax(0,1fr)}.viewer-lead{margin:0 0 16px;line-height:1.7}.viewer-dialog .pair-foot{flex-wrap:wrap}.pair-status[data-status=off] .status-dot{background:var(--text-3)}@media (width<=560px){.pair-body{grid-template-columns:minmax(0,1fr)}.pair-qr{width:220px;margin:0 auto}.viewer-dialog .pair-body{grid-template-columns:minmax(0,1fr)}}.sidebar{border-right:1px solid var(--border);background:var(--panel);grid-area:side;min-height:0;display:flex}.thumbs{flex-direction:column;flex:1;gap:12px;margin:0;padding:14px 14px 24px 8px;list-style:none;display:flex;overflow-y:auto}.thumb{width:100%;color:var(--text-3);text-align:right;cursor:pointer;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;padding:0;display:grid}.thumb:focus-visible{outline:none}.thumb-num{font-variant-numeric:tabular-nums;font-size:12px}.thumb-frame{outline-offset:2px;background:#26282d;border-radius:4px;outline:2px solid #0000;transition:outline-color .12s;display:block;overflow:hidden}.thumb-frame canvas{object-fit:contain;width:100%;height:100%;display:block}.thumb:hover .thumb-frame{outline-color:var(--border-strong)}.thumb:focus-visible .thumb-frame{outline-color:var(--accent-strong)}.thumb[aria-current=true] .thumb-num{color:var(--text)}.thumb[aria-current=true] .thumb-frame{outline-color:var(--accent)}.stage{background:var(--bg);grid-area:stage;min-width:0;min-height:0;position:relative}.slide-view{justify-content:center;align-items:center;display:flex;position:absolute;inset:28px}.slide-canvas{background:#fff;max-width:100%;max-height:100%;box-shadow:0 10px 40px #00000073}.slide-blank{opacity:0;pointer-events:none;transition:opacity .15s;position:absolute;inset:0}.slide-blank[data-mode=black]{opacity:1;background:#000}.slide-blank[data-mode=white]{opacity:1;background:#fff}.notes{border-top:1px solid var(--border);background:var(--panel);flex-direction:column;grid-area:notes;min-height:0;display:flex;position:relative}.notes-resizer{z-index:2;cursor:row-resize;touch-action:none;height:10px;position:absolute;top:-5px;left:0;right:0}.notes-resizer:after{content:"";background:var(--border-strong);opacity:0;border-radius:2px;width:40px;height:3px;transition:opacity .15s;position:absolute;top:4px;left:50%;transform:translate(-50%)}.notes-resizer:hover:after,.notes.is-resizing .notes-resizer:after{opacity:1}.notes.is-resizing{-webkit-user-select:none;user-select:none}.notes-head{align-items:center;gap:12px;padding:8px 14px 0 28px;display:flex}.notes-label{color:var(--text-3);letter-spacing:.04em;margin:0;font-size:12px;font-weight:600}.notes-warning{color:#f2c46d;flex:1;min-width:0;margin:0;font-size:12px}.notes-size{gap:2px;margin-left:auto;display:flex}.size-btn{min-width:34px;height:26px;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:13px}.size-btn:hover{background:var(--panel-2);color:var(--text)}.notes-body{min-height:0;font-size:var(--notes-size,18px);flex:1;padding:6px 28px 18px;line-height:1.7;overflow-y:auto}.hints{border-top:1px solid var(--border);background:var(--panel);color:var(--text-3);flex-wrap:wrap;grid-area:hints;gap:6px 18px;padding:10px 28px 14px;font-size:12px;display:flex}.jump{z-index:3;color:#fff;font-variant-numeric:tabular-nums;background:#141518e0;border-radius:999px;margin:0;padding:8px 18px;font-size:15px;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.show-toolbar,.presenter-bar,.next-preview{display:none}.deck.is-presenting{grid-template:"top top""stage next"minmax(0,1fr)"stage notes"minmax(0,1.2fr)"hints hints"/minmax(0,3fr) minmax(320px,2fr)}.deck.is-presenting :is(.sidebar,.topbar-actions,.notes-resizer){display:none}.deck.is-presenting .presenter-bar{align-items:center;gap:8px;display:flex}.presenter-elapsed{font-variant-numeric:tabular-nums;text-align:right;min-width:4.5ch;font-size:26px;font-weight:650}.presenter-elapsed[data-paused=true]{color:#f2c46d}.presenter-now{color:var(--text-2);font-variant-numeric:tabular-nums;margin:0 12px 0 8px;font-size:15px}.deck.is-presenting .next-preview{border-left:1px solid var(--border);background:var(--panel);flex-direction:column;grid-area:next;min-height:0;padding:14px 16px 12px;display:flex}.next-label{color:var(--text-3);letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}.next-frame{flex:1;min-height:0;position:relative}.next-frame .slide-view{inset:0}.next-frame .slide-canvas{box-shadow:none}.next-last{color:var(--text-3);text-align:center;margin:auto 0}.deck.is-presenting .notes{border-left:1px solid var(--border)}.deck.is-presenting .stage{cursor:pointer}.deck.is-presenting .show-toolbar{z-index:2;border:1px solid var(--border-strong);background:var(--panel-2);border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:16px;left:16px}.deck.is-presenting[data-blank=black] .tool[data-action=blank]{color:#fff;background:#e5484d}.deck.is-presenting .stage .slide-blank:is([data-mode=black],[data-mode=white]){background:#000000a6;place-items:center;display:grid}.deck.is-presenting .stage .slide-blank[data-mode=black]:after{content:"觀眾看到黑幕"}.deck.is-presenting .stage .slide-blank[data-mode=white]:after{content:"觀眾看到白幕"}.deck.is-presenting .stage .slide-blank:after{color:#fff;background:#e5484d;border-radius:999px;padding:8px 16px;font-size:15px;font-weight:600}.ppt{grid-template:"top""main"minmax(0,1fr)"hints"/minmax(0,1fr);height:100vh;display:grid}.ppt-setup,.ppt-main{grid-area:main}.ppt .hints{border-top:1px solid var(--border)}.ppt-setup{place-items:center;padding:32px 24px;display:grid;overflow-y:auto}.ppt-setup-card{width:min(560px,100%)}.ppt-setup-card h2{margin:0 0 16px;font-size:22px;font-weight:650}.ppt-steps{margin:0 0 20px;padding-left:22px;line-height:1.8}.ppt-steps li{margin-bottom:8px}.ppt-steps a{color:var(--accent-strong);font-weight:600}.ppt-setup-card .muted,.ppt-steps .muted{color:var(--text-3);font-size:13px;line-height:1.6;display:block}.ppt-main{grid-template:"slides notes"minmax(0,1fr)/minmax(0,3fr) minmax(300px,2fr);min-height:0;display:grid}.ppt-slides{grid-area:slides;grid-template-rows:minmax(0,1fr) auto;gap:16px;min-height:0;padding:24px;display:grid}.ppt-slides figure{min-height:0;margin:0}.ppt-current{flex-direction:column;min-height:0;display:flex;position:relative}.ppt-current .ppt-frame{flex:1;min-height:0}.ppt-frame{background:#24262b;border-radius:6px;place-items:center;display:grid;overflow:hidden}.ppt-current .ppt-frame img{max-width:100%;max-height:100%}.ppt-frame img{object-fit:contain;width:100%;height:100%;display:block}.ppt-frame-text{color:var(--text-3);margin:0;font-size:13px}.ppt-slides figcaption{color:var(--text-2);font-variant-numeric:tabular-nums;margin-top:6px;font-size:13px}.ppt:is([data-blank=black],[data-blank=white]) .ppt-current .ppt-frame{outline-offset:2px;outline:3px solid #e5484d}.ppt-side{grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:end;gap:16px;display:grid}.ppt-next .ppt-frame{aspect-ratio:16/9}.ppt-controls{justify-content:flex-end;gap:8px;display:flex}.ppt-controls .btn{height:44px;padding:0 20px;font-size:15px}.ppt-notes{border-top:0;border-left:1px solid var(--border)}.deck.is-showing{display:block}.deck.is-showing :is(.topbar,.sidebar,.notes,.hints){display:none}.deck.is-showing .stage{cursor:default;background:#000;position:fixed;inset:0}.deck.is-showing .slide-view{inset:0}.deck.is-showing .slide-canvas{box-shadow:none}.deck.is-showing.is-idle .stage,.deck.is-showing.is-idle .stage *{cursor:none}.deck.is-showing .show-toolbar{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#16171bc7;border:1px solid #ffffff14;border-radius:12px;align-items:center;gap:2px;padding:4px;transition:opacity .25s;display:flex;position:absolute;bottom:20px;left:20px}.deck.is-showing.is-idle .show-toolbar{opacity:0;pointer-events:none}.tool{color:#d4d5db;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;width:36px;height:36px;display:grid}.tool:hover{color:#fff;background:#ffffff1a}.tool-indicator{color:#c4c6cc;font-variant-numeric:tabular-nums;text-align:center;min-width:60px;padding:0 6px;font-size:13px}.deck[data-blank=black] .tool[data-action=blank]{color:#fff;background:#ffffff1f}@media (width<=760px){.deck{grid-template-columns:minmax(0,1fr);grid-template-areas:"top""stage""notes""hints"}.sidebar{display:none}.topbar{flex-wrap:wrap}}
