 *, *::before, *::after {
     box-sizing: border-box;
     margin: 0;
     padding: 0;
 }

 :root {
     --black: #faf8f6;
     --white: #ffffff;
     --cream: #f0ede8;
     --ink: #1a1a1a;
     --muted: #6b6560;
     --accent: #1B6B3A;
     --accent2: #2fb865;
     --border: #e0dcd6;
     --card: #ffffff;
 }

 html, body {
     min-height: 100%;
     background: var(--black);
     color: var(--ink);
     font-family: 'Inter', sans-serif;
     font-weight: 300;
 }

 /* ── NOISE TEXTURE ── */
 body::before {
     content: '';
     position: fixed;
     inset: 0;
     background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.015'/%3E%3C/svg%3E");
     pointer-events: none;
     z-index: 0;
 }

 /* ── LAYOUT ── */
 .page {
     position: relative;
     z-index: 1;
     max-width: 820px;
     margin: 0 auto;
     padding: 4rem 2rem 6rem;
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 0;
     min-height: 100vh;
 }

 /* ── LEFT PANEL ── */
 .panel-left {
     padding-right: 3rem;
     border-right: 1px solid var(--border);
 }

 .eyebrow {
     font-family: 'DM Mono', monospace;
     font-size: 0.7rem;
     letter-spacing: 0.2em;
     text-transform: uppercase;
     color: var(--accent);
     margin-bottom: 1.2rem;
 }

 h1 {
     font-family: 'Inter', sans-serif;
     font-size: clamp(2.8rem, 5vw, 4rem);
     font-weight: 700;
     line-height: 1.05;
     color: var(--ink);
     margin-bottom: 1rem;
     letter-spacing: -0.02em;
 }

 h1 em {
     font-style: italic;
     color: var(--accent);
     font-weight: 700;
 }

 .subtitle {
     font-size: 0.95rem;
     color: var(--muted);
     line-height: 1.7;
     margin-bottom: 2.5rem;
     max-width: 34ch;
 }

 /* ── FORM ── */
 .form-group {
     margin-bottom: 1.4rem;
 }

 label {
     display: block;
     font-family: 'DM Mono', monospace;
     font-size: 0.65rem;
     letter-spacing: 0.15em;
     text-transform: uppercase;
     color: var(--muted);
     margin-bottom: 0.5rem;
 }

 input[type="url"],
 input[type="text"],
 input[type="color"],
 select {
     width: 100%;
     padding: 0.75rem 1rem;
     border: 1px solid var(--border);
     background: var(--card);
     border-radius: 4px;
     font-family: 'Inter', sans-serif;
     font-size: 0.9rem;
     color: var(--ink);
     outline: none;
     transition: border-color 0.15s, background 0.15s;
     appearance: none;
 }

 input:focus, select:focus {
     border-color: var(--accent2);
     background: rgba(47, 184, 101, 0.04);
 }

 .color-row {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 1rem;
 }

 .color-wrap {
     display: flex;
     align-items: center;
     gap: 0.75rem;
     padding: 0.6rem 0.9rem;
     border: 1px solid var(--border);
     background: var(--card);
     border-radius: 4px;
     cursor: pointer;
 }

 .color-wrap input[type="color"] {
     width: 28px;
     height: 28px;
     padding: 0;
     border: none;
     border-radius: 50%;
     cursor: pointer;
     background: none;
 }

 .color-wrap span {
     font-family: 'DM Mono', monospace;
     font-size: 0.75rem;
     color: var(--muted);
 }

 .btn-generate {
     width: 100%;
     margin-top: 0.5rem;
     padding: 1rem 2rem;
     background: linear-gradient(135deg, var(--accent) 0%, var(--accent2) 100%);
     color: var(--white);
     border: none;
     border-radius: 4px;
     font-family: 'Inter', sans-serif;
     font-size: 0.95rem;
     font-weight: 600;
     cursor: pointer;
     letter-spacing: 0.03em;
     transition: transform 0.1s, box-shadow 0.15s;
     position: relative;
     overflow: hidden;
     box-shadow: 0 0 20px rgba(47, 184, 101, 0.3);
 }

 .btn-generate:hover {
     transform: translateY(-2px);
     box-shadow: 0 0 30px rgba(47, 184, 101, 0.5);
 }

 .btn-generate:active {
     transform: scale(0.98);
 }

 .btn-generate::after {
     content: '→';
     position: absolute;
     right: 1.5rem;
     top: 50%;
     transform: translateY(-50%);
     font-size: 1.1rem;
     transition: right 0.15s;
 }

 .btn-generate:hover::after {
     right: 1.2rem;
 }

 /* ── RIGHT PANEL ── */
 .panel-right {
     padding-left: 3rem;
     display: flex;
     flex-direction: column;
     align-items: center;
     justify-content: flex-start;
     padding-top: 0.5rem;
 }

 .qr-stage {
     width: 100%;
     aspect-ratio: 1;
     max-width: 280px;
     border: 1px solid var(--border);
     background: var(--card);
     display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 4px;
     position: relative;
     overflow: hidden;
     box-shadow: 0 0 30px rgba(0, 217, 255, 0.1);
 }

 .qr-stage .placeholder {
     text-align: center;
     color: var(--border);
 }

 .qr-stage .placeholder svg {
     width: 64px;
     height: 64px;
     opacity: 0.2;
 }

 .qr-stage .placeholder p {
     font-family: 'DM Mono', monospace;
     font-size: 0.65rem;
     letter-spacing: 0.1em;
     margin-top: 0.75rem;
     text-transform: uppercase;
     color: var(--border);
 }

 #qr-output {
     display: none;
     width: 100%;
     height: 100%;
     align-items: center;
     justify-content: center;
 }

 #qr-output canvas,
 #qr-output img {
     max-width: 100%;
     max-height: 100%;
 }

 .qr-meta {
     margin-top: 1.5rem;
     width: 100%;
     max-width: 280px;
 }

 .qr-url-display {
     font-family: 'DM Mono', monospace;
     font-size: 0.7rem;
     color: var(--muted);
     word-break: break-all;
     line-height: 1.6;
     padding: 0.75rem;
     background: var(--cream);
     border: 1px solid var(--border);
     border-radius: 4px;
     display: none;
 }

 .btn-download {
     display: none;
     width: 100%;
     max-width: 280px;
     margin-top: 1rem;
     padding: 0.75rem 1.2rem;
     background: transparent;
     color: var(--accent);
     border: 1px solid var(--accent);
     border-radius: 4px;
     font-family: 'Inter', sans-serif;
     font-size: 0.85rem;
     font-weight: 500;
     cursor: pointer;
     letter-spacing: 0.02em;
     transition: all 0.15s;
     text-align: center;
 }

 .btn-download:hover {
     background: rgba(0, 217, 255, 0.1);
     box-shadow: 0 0 15px rgba(0, 217, 255, 0.3);
 }

 /* ── FOOTER NOTE ── */
 .footer-note {
     grid-column: 1 / -1;
     margin-top: 4rem;
     padding-top: 2rem;
     border-top: 1px solid var(--border);
     display: flex;
     gap: 2rem;
     justify-content: center;
 }

 .note-item {
     text-align: center;
     max-width: 160px;
 }

 .note-item .icon {
     font-family: 'DM Mono', monospace;
     font-size: 1.1rem;
     color: var(--accent);
     display: block;
     margin-bottom: 0.4rem;
 }

 .note-item p {
     font-size: 0.78rem;
     color: var(--muted);
     line-height: 1.5;
     font-weight: 300;
 }

 /* ── RESPONSIVE ── */
 @media (max-width: 640px) {
     .page {
         grid-template-columns: 1fr;
         padding: 2.5rem 1.5rem 4rem;
     }

     .panel-left {
         border-right: none;
         border-bottom: 1px solid var(--border);
         padding-right: 0;
         padding-bottom: 2.5rem;
         margin-bottom: 2.5rem;
     }

     .panel-right {
         padding-left: 0;
     }

     .footer-note {
         flex-direction: column;
         align-items: center;
         gap: 1.5rem;
     }
 }