:root { --bg-color: #ffffff; --text-color: #000000; --border-color: #000000; --accent-color: #000000; --input-bg: #ffffff; /* Typography */ --font-serif: "Georgia", "Times New Roman", Times, serif; --font-mono: "Courier New", Courier, "Lucida Sans Typewriter", monospace; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-serif); background-color: var(--bg-color); color: var(--text-color); line-height: 1.6; min-height: 100vh; -webkit-font-smoothing: antialiased; } /* Layout */ .app-container { display: grid; grid-template-columns: 1fr; min-height: 100vh; border-top: 5px solid var(--border-color); /* The "Masthead" thick line */ } .pane { padding: 2rem 2.5rem; position: relative; } /* Header */ header h1 { font-size: 2.5rem; font-weight: 700; margin-bottom: 2rem; letter-spacing: -0.05rem; line-height: 1; text-transform: uppercase; border-bottom: 1px solid var(--border-color); padding-bottom: 1rem; } hr { border: 0; border-bottom: 1px solid var(--border-color); margin: 2rem 0; } /* Inputs Pane */ .input-pane { background: var(--bg-color); } /* Controls */ .control-group { margin-bottom: 1.5rem; } label { display: block; margin-bottom: 0.5rem; font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; } /* The "Unorthodox" Input Style */ input, textarea, select { width: 100%; padding: 1rem; background-color: transparent; border: 1px solid var(--border-color); border-radius: 0; /* Crucial */ /* Typography mix */ font-family: var(--font-mono); font-size: 1rem; color: var(--text-color); /* Remove native OS styles */ appearance: none; -webkit-appearance: none; box-shadow: none; } input:focus, textarea:focus, select:focus { outline: 2px solid var(--text-color); outline-offset: -2px; background-color: #fff; } /* Custom Dropdown Arrow for the Brutalist look */ select { background-image: url('data:image/svg+xml;utf8,'); background-repeat: no-repeat; background-position: right 1rem center; background-size: 12px; cursor: pointer; } .input-form { display: none; animation: fadeIn 0.3s ease; } .input-form.active { display: block; } @keyframes fadeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } } /* Preview Pane */ .preview-pane { display: flex; flex-direction: column; align-items: center; /* Create a texture or distinct feel for the right side? Let's keep it stark white but separated by a border. */ background-color: var(--bg-color); } .sticky-wrapper { width: 100%; max-width: 320px; padding-top: 1rem; } /* QR Container */ #qr-container { width: 256px; height: 256px; margin: 0 auto 2rem auto; /* The "Frame" */ border: 1px solid var(--border-color); padding: 10px; /* Mat frame */ display: flex; align-items: center; justify-content: center; /* Hard transition, no fading */ transition: none; } #qr-container img, #qr-container canvas { display: block; max-width: 100%; /* Ensure crisp edges */ image-rendering: pixelated; } /* The Button - Brutalist */ button { width: 100%; padding: 1rem; background-color: var(--text-color); /* Black */ color: var(--bg-color); /* White */ border: 1px solid var(--text-color); border-radius: 0; font-family: var(--font-mono); font-size: 0.9rem; font-weight: 700; text-transform: uppercase; cursor: pointer; transition: all 0.1s; } button:hover:not(:disabled) { background-color: var(--bg-color); color: var(--text-color); /* The border remains black, creating an "invert" effect */ } button:disabled { background-color: #f0f0f0; color: #aaa; border-color: #ccc; cursor: not-allowed; text-decoration: line-through; /* A little edgy touch */ } /* Desktop Grid */ @media (min-width: 768px) { .app-container { grid-template-columns: 400px 1fr; /* Fixed width sidebar, fluid content */ max-width: 100%; margin: 0; border-top: none; /* Remove top border on desktop */ } .input-pane { border-right: 1px solid var(--border-color); /* Vertical divider */ height: 100vh; overflow-y: auto; } .preview-pane { height: 100vh; justify-content: center; background-image: radial-gradient(#000 0.5px, transparent 0.5px); background-size: 20px 20px; /* Subtle dot grid pattern on the right */ } /* Make the pattern very subtle */ .preview-pane { background-color: #fdfdfd; } .sticky-wrapper { background: #fff; padding: 2rem; border: 1px solid black; box-shadow: 10px 10px 0px 0px rgba(0,0,0,1); /* Hard block shadow */ } }