.upload-main { height: 100vh; min-height: 0; overflow: hidden; } .desktop-wrap { --window-height: 736px; --side-width: 440px; width: min(1278px, 100%); height: min(var(--window-height), calc(100vh - 36px)); max-height: calc(100vh - 36px); display: grid; grid-template-columns: minmax(0, 820px) var(--side-width); grid-template-rows: minmax(0, 1fr); align-items: stretch; justify-content: center; gap: 18px; overflow: hidden; zoom: var(--ui-scale); } body.fit-window .desktop-wrap { width: min(100%, calc(100vw / var(--ui-scale) - 20px)); height: min(calc(100vh / var(--ui-scale) - 20px), 900px); max-height: none; grid-template-columns: minmax(0, 1fr) var(--side-width); } .upload-window { width: 100%; height: 100%; min-height: 0; overflow: hidden; } .upload-form { display: flex; flex: 1; flex-direction: column; min-height: 0; } .menu-bar { position: relative; display: flex; align-items: center; gap: 2px; height: 24px; padding: 1px 6px; font-size: 13px; line-height: 13px; z-index: 5; } .menu-item { position: relative; } .menu-button { height: 20px; min-width: 54px; padding: 0 8px; color: #000000; background: transparent; border: 1px solid transparent; font-family: inherit; font-size: 13px; text-align: left; } .menu-button:hover, .menu-button:focus-visible { border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; outline: none; } .menu-popup { position: absolute; top: 22px; left: 0; min-width: 198px; padding: 2px; display: none; background: var(--w98-gray); border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; box-shadow: 3px 3px 0 rgba(0,0,0,.35); z-index: 20; } .menu-item.is-open .menu-popup { display: block; } .menu-action { width: 100%; min-height: 22px; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 2px 6px; color: #000000; background: transparent; border: 0; font-family: inherit; font-size: 12px; text-align: left; } .menu-action[aria-disabled="true"] { color: #808080; text-shadow: 1px 1px 0 #ffffff; } .menu-action[aria-disabled="true"] img { opacity: .55; filter: grayscale(1); } .menu-action[aria-disabled="true"]:hover, .menu-action[aria-disabled="true"]:focus-visible { color: #808080; background: transparent; } .menu-action img { width: 16px; height: 16px; object-fit: contain; image-rendering: pixelated; } .menu-action:hover, .menu-action:focus-visible { color: #ffffff; background: #000078; outline: none; } .menu-separator { height: 1px; margin: 3px 2px; background: #808080; border-bottom: 1px solid #ffffff; } .shortcut { color: #555555; } .menu-action:hover .shortcut { color: #ffffff; } .upload-panel { display: flex; flex: 1; flex-direction: column; min-height: 0; margin: 0 8px 8px; padding: 12px; background-color: #ffffff; background-image: linear-gradient(180deg, rgba(255,255,255,.9), rgba(238,238,238,.58)), repeating-linear-gradient(0deg, rgba(0,0,0,.025) 0 1px, transparent 1px 6px); } .upload-header { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 10px; margin-bottom: 10px; padding: 8px; color: #000000; background: #dfdfdf; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; box-shadow: inset 1px 1px 0 #f7f7f7, inset -1px -1px 0 #b0b0b0; } .upload-heading { margin: 0 0 4px; font-size: 20px; line-height: 22px; font-weight: bold; } .upload-subtext { margin: 0; color: #333333; font-size: 13px; line-height: 15px; } .upload-quota { min-width: 250px; padding: 7px; overflow: hidden; background: #c7d8f2; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #404040; border-bottom: 1px solid #404040; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #e9f2ff; font-size: 12px; line-height: 13px; } .upload-quota strong { display: block; margin-bottom: 4px; font-size: 13px; } .upload-quota.is-quota-warning { background: repeating-linear-gradient(45deg, #ffdede 0 5px, #fff2a8 5px 10px); border-color: #800000; animation: quota-warning-breathe 900ms steps(4, end) infinite; } .upload-quota-track, .upload-overall-track, .upload-progress { display: block; min-width: 0; overflow: hidden; background-color: #ffffff; background-image: repeating-linear-gradient(to right, rgba(0,0,0,.05) 0 1px, transparent 1px 18px); border-top: 2px solid #808080; border-left: 2px solid #808080; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; } .upload-quota-track { width: 100%; height: 16px; margin-top: 6px; } .upload-quota-bar, .upload-overall-bar, .upload-progress-bar { display: block; width: 0%; max-width: 100%; height: 100%; background-color: #000078; background-image: repeating-linear-gradient(to right, rgba(255,255,255,.12) 0 1px, transparent 1px 18px); transform-origin: left center; position: relative; } .upload-quota-bar.is-over-quota { background-image: repeating-linear-gradient(45deg, #800000 0 7px, #ffcc00 7px 14px); } .upload-dropzone { flex: 0 0 auto; min-height: 154px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 18px; text-align: center; color: #000000; background: repeating-linear-gradient(45deg, #dfdfdf 0 4px, #e9e9e9 4px 8px), #dfdfdf; border: 1px solid #808080; box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #808080, inset 2px 2px 0 rgba(0,0,0,.18), 0 1px 0 rgba(255,255,255,.7); } .upload-dropzone.is-dragging, .upload-dropzone:hover { background: repeating-linear-gradient(45deg, #c7d8f2 0 4px, #d8e5f8 4px 8px), #c7d8f2; outline: 2px dashed #000078; outline-offset: -6px; } .upload-dropzone.is-current-step { animation: dropzone-attention 1500ms steps(5, end) infinite; } .upload-dropzone.is-locked { opacity: .72; cursor: not-allowed; filter: grayscale(.3); } .upload-icon-img { width: 34px; height: 34px; object-fit: contain; image-rendering: pixelated; } .upload-primary { font-size: 18px; line-height: 18px; font-weight: bold; } .upload-secondary { color: #333333; font-size: 13px; line-height: 15px; } .upload-linklike { color: #000078; text-decoration: underline; font-weight: bold; } .upload-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); } .upload-details { display: flex; align-items: center; min-height: 28px; margin-top: 12px; padding: 5px 8px; background: #ffffff; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #dfdfdf; border-bottom: 1px solid #dfdfdf; box-shadow: inset 1px 1px 0 rgba(0,0,0,.16), inset -1px -1px 0 rgba(255,255,255,.75); font-size: 13px; line-height: 13px; } .upload-detail-label { flex: 0 0 auto; margin-right: 6px; font-weight: bold; } .upload-file-count { margin-left: auto; } .upload-file-list { flex: 1 1 auto; min-height: 0; margin-top: 8px; overflow-y: auto; background: #ffffff; border-top: 2px solid #606060; border-left: 2px solid #606060; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; } .upload-empty-state { margin: 0; padding: 10px 8px; color: #555555; font-size: 13px; line-height: 15px; } .upload-file-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) 82px 30px; grid-template-rows: 20px 8px; align-items: center; height: 38px; padding: 4px 8px; border-bottom: 1px solid #dfdfdf; font-size: 13px; line-height: 13px; column-gap: 6px; } .upload-file-row:nth-child(odd) { background: rgba(255,255,255,.92); } .upload-file-row:nth-child(even) { background: rgba(240,244,255,.88); } .upload-file-row:hover { background: #d8e5f8; } .upload-file-row.is-working { animation: upload-row-loading 900ms steps(2, end) infinite; } .upload-file-row.is-failed { background: #ffe2e2 !important; } .upload-file-row.is-too-large { position: relative; background: #fff0b8 !important; animation: row-warning-breathe 900ms steps(4, end) infinite; } .upload-file-row.is-too-large::after { content: ""; position: absolute; inset: 1px; pointer-events: none; border: 2px solid transparent; border-image: repeating-linear-gradient(90deg, #800000 0 8px, #ffcc00 8px 16px) 1; } .upload-file-icon { grid-row: 1 / 3; width: 18px; height: 18px; display: grid; place-items: center; object-fit: contain; image-rendering: pixelated; } .upload-file-row.has-thumbnail .upload-file-icon { width: 20px; height: 20px; object-fit: cover; background: #ffffff; border: 1px solid #808080; } .upload-file-name, .upload-file-size { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .upload-file-size { text-align: right; color: #333333; } .upload-file-remove { grid-column: 4; grid-row: 1 / 3; justify-self: end; width: 22px; min-width: 22px; height: 22px; padding: 0; font-size: 12px; } .upload-progress { grid-column: 2 / 4; grid-row: 2; height: 8px; width: 100%; border-width: 1px; } .upload-file-row.is-uploaded .upload-progress-bar { background-color: #008000; } .upload-file-row.is-failed .upload-progress-bar { width: 100%; background-color: #800000; } .upload-progress-bar.just-completed, .upload-overall-bar.just-completed { animation: progress-impact-bar 520ms steps(5, end) 1; } .upload-progress-bar.just-completed::after, .upload-overall-bar.just-completed::after { content: ""; position: absolute; right: -7px; top: 50%; width: 12px; height: 22px; transform: translateY(-50%); background: repeating-linear-gradient(45deg, rgba(255,255,255,.95) 0 2px, rgba(0,255,102,.85) 2px 4px, transparent 4px 6px); box-shadow: 0 0 0 1px #ffffff, 0 0 8px #00ff66; pointer-events: none; animation: progress-impact-spark 520ms steps(5, end) 1; } .upload-result { display: grid; grid-template-columns: 72px minmax(0, 1fr) 72px; align-items: center; gap: 6px; min-height: 36px; margin-top: 8px; padding: 4px 6px; background: #dfdfdf; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; box-shadow: inset 1px 1px 0 rgba(0,0,0,.16), inset -1px -1px 0 rgba(255,255,255,.75); font-size: 12px; line-height: 12px; } .upload-result.is-current-step { animation: share-ready-pulse 1100ms steps(4, end) infinite; } .upload-result-label { font-weight: bold; } .upload-result-link { min-width: 0; overflow: hidden; color: #000078; text-overflow: ellipsis; white-space: nowrap; } .upload-result-link.is-empty { color: #555555; text-decoration: none; pointer-events: none; } .upload-share-button { min-width: 72px; width: 72px; height: 24px; font-size: 12px; line-height: 12px; } .upload-overall { display: grid; grid-template-columns: minmax(0, 1fr) 42px; align-items: center; gap: 6px; height: 28px; padding: 0 8px 8px; font-size: 12px; line-height: 12px; } .upload-overall-track { height: 18px; } .upload-overall-percent { min-width: 0; text-align: right; } .upload-actions { display: flex; justify-content: flex-end; gap: 8px; height: 40px; padding: 0 8px 8px; } .start-upload-cta { min-width: 128px; position: relative; overflow: visible; isolation: isolate; font-weight: bold; } .start-upload-cta.is-current-step { animation: start-ready-rainbow-breathe 1150ms ease-in-out infinite; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf, 0 0 0 1px #000000; } .start-upload-cta.is-current-step::after { content: ""; position: absolute; inset: -4px; pointer-events: none; z-index: 1; padding: 4px; background: linear-gradient(90deg, #ff004c, #ffcc00, #00d26a, #00a2ff, #8c48ff, #ff004c, #ffcc00); background-size: 280% 100%; opacity: .9; -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: start-border-rainbow-slide 1850ms linear infinite; } .upload-statusbar { grid-template-columns: 1fr 100px; } .side-stack { width: var(--side-width); min-width: var(--side-width); max-width: var(--side-width); height: 100%; min-height: 0; display: grid; grid-template-columns: var(--side-width); grid-template-rows: 350px 210px 1fr; gap: 12px; overflow: hidden; } .side-panel, .helper-window { width: var(--side-width); min-width: var(--side-width); max-width: var(--side-width); min-height: 0; overflow: hidden; } .side-panel { display: flex; flex-direction: column; box-shadow: inset -1px -1px 0 #808080, inset 1px 1px 0 #dfdfdf, 3px 4px 0 rgba(0,0,0,.38); } .side-body, .helper-body, .popup-body { margin: 0 6px 6px; padding: 9px; color: #000000; background-color: #ffffff; background-image: linear-gradient(180deg, rgba(255,255,255,.9), rgba(238,238,238,.58)), repeating-linear-gradient(0deg, rgba(0,0,0,.025) 0 1px, transparent 1px 6px); font-size: 13px; line-height: 15px; } .side-body { flex: 1 1 auto; overflow: auto; } .box-options-form { display: grid; gap: 8px; min-height: 100%; align-content: start; } .box-options-form.is-locked { opacity: .82; filter: grayscale(.12); } .box-options-form.is-locked::after { content: "Box sealed after upload"; display: block; margin-top: 8px; padding: 5px 6px; color: #000000; background: #dfdfdf; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; font-size: 12px; line-height: 13px; } .option-row { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 6px; align-items: center; } .option-check { position: relative; min-height: 18px; display: flex; gap: 6px; align-items: center; } .option-check input[type="checkbox"] { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; } .option-check span { position: relative; min-height: 16px; display: inline-flex; align-items: center; padding-left: 22px; } .option-check span::before { content: ""; position: absolute; left: 0; top: 0; width: 14px; height: 14px; background: #ffffff; border-top: 2px solid #808080; border-left: 2px solid #808080; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; box-shadow: inset -1px -1px 0 #dfdfdf; } .option-check input[type="checkbox"]:checked + span::after { content: ""; position: absolute; left: 4px; top: 6px; width: 2px; height: 2px; color: #000000; background: #000000; box-shadow: 2px 2px 0 #000000, 4px 4px 0 #000000, 6px 2px 0 #000000, 8px 0 0 #000000, 10px -2px 0 #000000; image-rendering: pixelated; } .upload-select, .upload-text-input { width: 100%; height: 22px; padding: 1px 4px; color: #000000; background: #ffffff; border-top: 1px solid #808080; border-left: 1px solid #808080; border-right: 1px solid #ffffff; border-bottom: 1px solid #ffffff; font-size: 12px; line-height: 12px; } .upload-text-input:disabled, .upload-select:disabled, .box-options-form.is-locked input[readonly], .box-options-form.is-locked input:disabled, .box-options-form.is-locked select:disabled { color: #404040; background: repeating-linear-gradient(45deg, #d0d0d0 0 4px, #c7c7c7 4px 8px); } .api-key-row { display: none; } .api-key-row.is-visible { display: grid; } .api-key-field { position: relative; display: block; } .api-key-state { position: absolute; right: 4px; top: 3px; color: #000078; font-size: 11px; line-height: 12px; pointer-events: none; } .api-key-field.is-checking::after { content: ""; position: absolute; inset: 2px; background: repeating-linear-gradient(90deg, rgba(0,0,120,.16) 0 8px, rgba(15,128,205,.16) 8px 16px); animation: api-key-scan 700ms steps(6, end) infinite; pointer-events: none; } .terminal-box { flex: 1 1 auto; min-height: 104px; max-height: 134px; overflow: auto; padding: 10px; color: #b4efbd; background-color: #030403; background-image: repeating-linear-gradient(transparent 0 4px, rgba(0,255,102,.018) 4px 6px); border: 0; box-shadow: inset 1px 1px 0 #000000, inset -1px -1px 0 rgba(255,255,255,.22); font-family: 'MonoCraft', 'PixelOperatorMono', 'Courier New', monospace; font-size: 13px; line-height: 16px; white-space: pre-wrap; } .terminal-box::after { content: "█"; display: inline-block; margin-left: 2px; color: #7dff8a; animation: terminal-cursor 1s steps(2, end) infinite; } .terminal-muted { color: #79ad83; } .terminal-actions { display: flex; justify-content: flex-end; margin-top: 8px; padding-top: 2px; } .terminal-copy-button { min-width: 148px; height: 24px; font-size: 12px; line-height: 12px; } .helper-body { height: calc(100% - 34px); min-height: 0; display: flex; justify-content: flex-start; align-content: flex-start; align-items: flex-start; flex-wrap: wrap; gap: 8px; overflow: auto; } .folder-icon-button { flex: 0 0 86px; width: 86px; min-width: 86px; height: 68px; display: grid; grid-template-rows: 34px 1fr; place-items: center; gap: 4px; padding: 4px; color: #000000; background: transparent; border: 1px solid transparent; font-family: inherit; font-size: 12px; line-height: 12px; } .folder-icon-button img { width: 34px; height: 34px; object-fit: contain; image-rendering: pixelated; } .folder-icon-button:hover, .folder-icon-button:focus-visible { color: #ffffff; background: #000078; border: 1px dotted #ffffff; outline: none; } .folder-icon-button-disabled { color: #606060; } .folder-icon-button-disabled img { filter: grayscale(.9); opacity: .75; } .modal-backdrop { position: fixed; inset: 0; display: none; background: rgba(128, 128, 128, .42); z-index: 70; } .modal-backdrop.is-visible { display: block; } .popup-window { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(780px, calc(100vw - 24px)); max-height: min(760px, calc(100vh - 24px)); display: none; z-index: 80; zoom: var(--ui-scale); } .popup-window.is-visible { display: flex; animation: popup-open-v10 180ms steps(5, end); } .popup-window.is-about-popup { width: min(360px, calc(100vw - 28px)); min-height: 220px; } .popup-body { flex: 1 1 auto; min-height: 0; max-height: calc(100vh - 90px); padding: 12px; overflow: auto; font-size: 13px; line-height: 16px; } .popup-body h3 { margin: 0 0 8px; font-size: 16px; line-height: 18px; } .popup-body h4 { margin: 14px 0 6px; font-size: 14px; line-height: 16px; } .popup-body p { margin: 0 0 8px; } .popup-body ul, .popup-body ol { margin: 0 0 8px 18px; padding: 0; } .popup-body li { margin: 0 0 4px; } .popup-body .code-block { margin: 6px 0 10px; width: 100%; max-width: 100%; display: block; overflow: auto; overscroll-behavior: contain; padding: 8px; color: #00ff66; background: #000000; border: 0; font-family: 'MonoCraft', 'PixelOperatorMono', 'Courier New', monospace; font-size: 12px; line-height: 15px; white-space: pre; user-select: text; -webkit-user-select: text; box-sizing: border-box; contain: layout paint; } .popup-window.is-about-popup .popup-body { display: flex; flex-direction: column; justify-content: stretch; overflow: hidden; } .about-popup-content { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; } .about-popup-content p:last-child { margin-top: auto; margin-bottom: 0; padding-top: 10px; } .popup-close { cursor: pointer; } .toast { position: fixed; right: 12px; bottom: 52px; max-width: min(360px, calc(100vw - 24px)); display: none; padding: 8px 10px; color: #000000; background: #ffffcc; border-top: 2px solid #ffffff; border-left: 2px solid #ffffff; border-right: 2px solid #000000; border-bottom: 2px solid #000000; z-index: 60; font-size: 12px; line-height: 14px; box-shadow: 4px 4px 0 rgba(0,0,0,.45); zoom: var(--ui-scale); } .toast.is-visible { display: block; animation: toast-in 180ms steps(3, end), toast-buzz 700ms steps(2, end) 180ms; } .toast.toast-warning { color: #000000; background: #ffffcc; border: 4px solid transparent; border-image: repeating-linear-gradient(45deg, #111111 0 8px, #ffcc00 8px 16px) 4; } .toast.toast-error { color: #ffffff; background: #b00000; text-shadow: 1px 1px 0 #000000; border-color: #ffb0b0 #330000 #330000 #ffb0b0; } .duplicate-list, .quota-dialog-list { margin: 8px 0; padding: 6px 6px 6px 28px; background: #ffffff; border-top: 2px solid #808080; border-left: 2px solid #808080; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; max-height: 180px; overflow: auto; } .quota-dialog-summary, .quota-note { padding: 8px; background: #ffffcc; border: 1px solid #808080; } .quota-meter-list, .faq-list, .shortcut-list { display: grid; gap: 10px; } .quota-meter, .faq-item, .shortcut-list li { padding: 8px; background: #dfdfdf; border-top: 1px solid #ffffff; border-left: 1px solid #ffffff; border-right: 1px solid #808080; border-bottom: 1px solid #808080; } .quota-meter-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 5px; font-weight: bold; } .quota-meter-track { height: 18px; overflow: hidden; background: #ffffff; border-top: 2px solid #808080; border-left: 2px solid #808080; border-right: 2px solid #ffffff; border-bottom: 2px solid #ffffff; } .quota-meter-bar { display: block; height: 100%; background: #000078; } .copy-fallback-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; } .copy-fallback-text { width: 100%; min-height: 58px; font-family: 'MonoCraft', 'PixelOperatorMono', monospace; } .popup-body .code-block { user-select: text; -webkit-user-select: text; cursor: text; } .popup-body .code-block code { display: inline-block; min-width: 100%; color: inherit; font: inherit; white-space: inherit; user-select: text; -webkit-user-select: text; } .kbd { display: inline-block; min-width: 18px; padding: 1px 5px; color: #000000; background: #c0c0c0; border: 1px solid #000000; box-shadow: inset 1px 1px 0 #ffffff, inset -1px -1px 0 #808080; text-align: center; } @keyframes upload-row-loading { 0% { background-color: #ffffff; } 100% { background-color: #e6e6e6; } } @keyframes quota-warning-breathe { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.08); } } @keyframes row-warning-breathe { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.12); } } @keyframes dropzone-attention { 0%, 100% { filter: brightness(1); transform: translateY(0); } 50% { filter: brightness(1.07); transform: translateY(-1px); } } @keyframes share-ready-pulse { 50% { filter: brightness(1.08); box-shadow: 0 0 0 2px #000078; } } @keyframes start-ready-rainbow-breathe { 0%, 100% { transform: rotate(-.35deg) scale(1); } 50% { transform: rotate(.35deg) scale(1.016); } } @keyframes start-border-rainbow-slide { from { background-position: 0% 50%; } to { background-position: 100% 50%; } } @keyframes progress-impact-bar { 0% { filter: brightness(1); } 35% { filter: brightness(1.75); } 100% { filter: brightness(1); } } @keyframes progress-impact-spark { 0% { opacity: 0; transform: translateY(-50%) scale(.7); } 30% { opacity: 1; transform: translateY(-50%) scale(1.18); } 100% { opacity: 0; transform: translateY(-50%) scale(.7); } } @keyframes terminal-cursor { 50% { opacity: 0; } } @keyframes popup-open-v10 { from { transform: translate(-50%, -48%) scale(.97); opacity: .35; } to { transform: translate(-50%, -50%) scale(1); opacity: 1; } } @keyframes toast-in { from { transform: translateY(12px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes toast-buzz { 0%, 100% { margin-right: 0; } 25% { margin-right: 2px; } 50% { margin-right: -2px; } } @keyframes api-key-scan { to { background-position: 32px 0; } } @media (max-width: 1320px) { body { height: auto; min-height: 100vh; overflow-y: auto; } .upload-main { height: auto; min-height: 100vh; place-items: start center; overflow: visible; } .desktop-wrap { --window-height: 680px; grid-template-columns: minmax(0, 820px); grid-template-rows: var(--window-height) auto; width: min(820px, 100%); max-width: 820px; height: auto; max-height: none; overflow: visible; } .side-stack { width: 100%; min-width: 0; max-width: none; height: auto; grid-template-columns: 1fr; grid-template-rows: 350px 210px 132px; overflow: visible; } .side-panel, .helper-window { width: 100%; min-width: 0; max-width: none; } } @media (min-width: 1440px) { .desktop-wrap { --window-height: 780px; } .side-stack { grid-template-rows: 372px 230px 1fr; } } @media (max-width: 760px) { .upload-main { height: auto; min-height: 100dvh; place-items: stretch; align-items: stretch; padding: 0; overflow: visible; } .desktop-wrap { width: 100%; max-width: none; height: auto; max-height: none; min-height: 100dvh; gap: 10px; grid-template-columns: 1fr; grid-template-rows: auto auto; overflow: visible; } .upload-window { min-height: 100dvh; height: auto; width: 100vw; border-left: 0; border-right: 0; box-shadow: none; } .side-stack { grid-template-rows: auto auto auto; padding: 0 6px 12px; } .side-panel:first-child { min-height: 360px; } .side-panel:nth-child(2) { min-height: 210px; } .helper-window { min-height: 128px; } .upload-header { grid-template-columns: 1fr; } .upload-panel { margin: 0 6px 8px; padding: 10px; } .upload-dropzone { min-height: 118px; padding: 14px 10px; } .upload-primary { font-size: 16px; } .upload-details { flex-wrap: wrap; gap: 4px; } .upload-file-count { margin-left: 0; width: 100%; } .upload-file-row { grid-template-columns: 22px minmax(0, 1fr) 58px 28px; padding: 4px 5px; font-size: 12px; } .upload-result { grid-template-columns: 1fr 72px; } .upload-result-label { grid-column: 1 / 3; } .upload-actions { justify-content: stretch; } .upload-actions .win98-button { flex: 1; min-width: 0; } .menu-bar { overflow-x: auto; } .menu-popup { position: fixed; left: 6px; right: 6px; top: 50px; min-width: 0; } .popup-window { left: 0; top: 0; transform: none; width: 100vw; height: 100dvh; max-height: none; border: 0; box-shadow: none; } .popup-window .win98-titlebar { height: 32px; } .popup-close { width: 28px; height: 24px; font-size: 18px; font-weight: bold; } .popup-body { max-height: calc(100dvh - 40px); } .popup-window.is-visible { animation: popup-open-mobile-v10 160ms steps(5, end); } @keyframes popup-open-mobile-v10 { from { transform: translateY(10px); opacity: .35; } to { transform: translateY(0); opacity: 1; } } } @media (max-width: 420px) { :root { --base-font-size: 13px; } .win98-titlebar h1 { font-size: 13px; } .upload-file-size { display: none; } .upload-file-row { grid-template-columns: 22px minmax(0, 1fr) 28px; } .upload-file-remove { grid-column: 3; } .upload-progress { grid-column: 2 / 3; } }