@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap'); /* ── Reset ──────────────────────────────────────────────── */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } /* ── Tokens ─────────────────────────────────────────────── */ :root { --black: #000; --white: #fff; --gray-50: #fafafa; --gray-100:#f0f0f0; --gray-200:#e0e0e0; --gray-400:#999; --gray-600:#555; --red: #c00; --font: 'IBM Plex Mono', 'Courier New', monospace; --border: 1px solid var(--black); --radius: 0; } /* ── Base ───────────────────────────────────────────────── */ html { font-size: 14px; } body { font-family: var(--font); background: var(--white); color: var(--black); min-height: 100vh; display: flex; flex-direction: column; -webkit-font-smoothing: antialiased; } a { color: var(--black); text-decoration: underline; text-underline-offset: 3px; } a:hover { color: var(--gray-600); } /* ── Header ─────────────────────────────────────────────── */ header { display: flex; align-items: center; gap: 2rem; padding: 0 2rem; height: 48px; border-bottom: var(--border); flex-shrink: 0; } .logo { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; color: var(--black); } .logo:hover { color: var(--gray-600); } nav { display: flex; align-items: center; gap: 0; margin-left: auto; } nav a { display: block; padding: 0 1rem; height: 48px; line-height: 48px; font-size: 12px; letter-spacing: 0.04em; text-decoration: none; color: var(--gray-600); border-left: var(--border); } nav a:hover { color: var(--black); background: var(--gray-100); } nav form { display: contents; } nav button[type="submit"] { display: block; padding: 0 1rem; height: 48px; font-size: 12px; letter-spacing: 0.04em; background: none; border: none; border-left: var(--border); color: var(--gray-600); cursor: pointer; font-family: var(--font); } nav button[type="submit"]:hover { color: var(--black); background: var(--gray-100); } /* ── Main ───────────────────────────────────────────────── */ main { flex: 1; padding: 3rem 2rem; } /* ── Form Container ─────────────────────────────────────── */ .form-container { max-width: 400px; } .form-container h1 { font-size: 16px; font-weight: 600; letter-spacing: 0.02em; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: var(--border); } form { display: flex; flex-direction: column; gap: 1.25rem; } label { display: flex; flex-direction: column; gap: 0.375rem; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gray-600); } input[type="text"], input[type="password"], input[type="file"] { width: 100%; padding: 0.6rem 0.75rem; font-family: var(--font); font-size: 13px; background: var(--white); border: var(--border); color: var(--black); outline: none; transition: background 0.1s; } input[type="text"]:focus, input[type="password"]:focus { background: var(--gray-50); box-shadow: inset 0 0 0 2px var(--black); } input[type="file"] { padding: 0.5rem; cursor: pointer; } input[type="file"]::-webkit-file-upload-button { font-family: var(--font); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; background: var(--black); color: var(--white); border: none; padding: 0.3rem 0.6rem; cursor: pointer; margin-right: 0.75rem; } input[type="file"]::file-selector-button { font-family: var(--font); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; background: var(--black); color: var(--white); border: none; padding: 0.3rem 0.6rem; cursor: pointer; margin-right: 0.75rem; } /* ── Primary Button ─────────────────────────────────────── */ button[type="submit"], .btn-primary { display: inline-block; padding: 0.6rem 1.25rem; font-family: var(--font); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; background: var(--black); color: var(--white); border: var(--border); cursor: pointer; transition: background 0.1s, color 0.1s; text-align: center; } button[type="submit"]:hover, .btn-primary:hover { background: var(--gray-600); } /* ── Danger Button ──────────────────────────────────────── */ button.danger { display: inline-block; padding: 0.3rem 0.6rem; font-family: var(--font); font-size: 11px; letter-spacing: 0.04em; background: none; color: var(--red); border: 1px solid var(--red); cursor: pointer; } button.danger:hover { background: var(--red); color: var(--white); } /* ── Generic Link-button (.btn for file-view) ───────────── */ a.btn { display: inline-block; padding: 0.6rem 1.25rem; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none; background: var(--black); color: var(--white); border: var(--border); transition: background 0.1s; } a.btn:hover { background: var(--gray-600); color: var(--white); } /* ── Error ──────────────────────────────────────────────── */ .error { font-size: 12px; color: var(--red); padding: 0.6rem 0.75rem; border: 1px solid var(--red); background: #fff5f5; margin-bottom: 0.5rem; } /* ── Share Box ──────────────────────────────────────────── */ .share-box { display: flex; gap: 0; margin: 1.25rem 0 1rem; } .share-box input[readonly] { flex: 1; background: var(--gray-100); color: var(--gray-600); border-right: none; cursor: text; } .share-box input[readonly]:focus { box-shadow: none; background: var(--gray-100); } /* Copy button — outline style, distinct from submit */ .share-box button { padding: 0.6rem 1rem; font-family: var(--font); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; background: var(--white); color: var(--black); border: var(--border); cursor: pointer; white-space: nowrap; transition: background 0.1s; flex-shrink: 0; } .share-box button:hover { background: var(--gray-100); } /* ── Table ──────────────────────────────────────────────── */ h1 { font-size: 16px; font-weight: 600; letter-spacing: 0.02em; margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: var(--border); } h1 + p { margin-bottom: 1.5rem; font-size: 12px; } table { width: 100%; border-collapse: collapse; border: var(--border); } th { padding: 0.6rem 1rem; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; text-align: left; background: var(--gray-100); border-bottom: var(--border); color: var(--gray-600); } td { padding: 0.6rem 1rem; font-size: 12px; border-bottom: 1px solid var(--gray-200); vertical-align: middle; } tr:last-child td { border-bottom: none; } tr:hover td { background: var(--gray-50); } td a { font-weight: 500; } td:last-child { width: 80px; text-align: right; } /* ── File View ──────────────────────────────────────────── */ .file-view { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: calc(100vh - 48px - 6rem); gap: 1.5rem; text-align: center; max-width: 800px; margin: 0 auto; } .file-view h1 { font-size: 13px; font-weight: 400; color: var(--gray-600); word-break: break-all; border-bottom: none; padding-bottom: 0; margin-bottom: 0; } .file-view video, .file-view audio { width: 100%; max-width: 720px; border: var(--border); display: block; } .file-actions { display: flex; gap: 0.75rem; } /* ── Utility ─────────────────────────────────────────────── */ .form-container > p { font-size: 12px; color: var(--gray-600); margin-top: 1rem; line-height: 1.7; } .form-container > p strong { color: var(--black); font-weight: 600; } .form-container > p a { color: var(--black); }