Spaces:
Running
Running
File size: 8,305 Bytes
7a7d8dc 2dc8d66 146ba97 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | :root {
--paper: #FCFCF7;
--ink: #0B0A08;
--red: #F4291F;
--mute: #6B6862;
--hair: 1.5px solid var(--ink);
--mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
--head: "Inter Tight", "Inter", system-ui, sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; background: var(--paper); color: var(--ink); }
body { font: 16px/1.5 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
a:hover { color: var(--red); }
.page { max-width: 1080px; margin: 0 auto; padding: 28px 24px 40px; }
.rule { border: 0; border-top: var(--hair); margin: 22px 0; }
.label { font: 500 11.5px/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; }
.label.dim { color: var(--mute); }
.label b { font-weight: 600; color: var(--red); letter-spacing: .06em; }
.sq { display: inline-block; width: 8px; height: 8px; background: var(--ink); flex: none; }
.sq.red { background: var(--red); }
.mast { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.mast-left { display: flex; align-items: flex-end; gap: 22px; }
.lockup { height: 96px; width: auto; display: block; }
.mast-meta { display: flex; flex-direction: column; gap: 6px; padding-bottom: 6px; }
.imprint { display: flex; align-items: center; gap: 10px; text-decoration: none; padding-bottom: 6px; }
.intro h1 { font: 800 clamp(34px, 5.4vw, 58px)/1.02 var(--head); letter-spacing: -.02em; margin: 6px 0 12px; }
.intro p { max-width: 62ch; margin: 0; color: #2a2824; }
.notice { border: var(--hair); padding: 16px 18px; margin: 22px 0 0; background: #fff; }
.notice p { margin: 8px 0; }
.notice.ok { border-color: var(--ink); }
.grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; margin-top: 26px; }
@media (max-width: 820px) { .grid { grid-template-columns: 1fr; } .lockup { height: 72px; } }
.panel { border-top: var(--hair); padding-top: 14px; }
textarea, input[type=number] {
width: 100%; font: 16px/1.45 var(--sans); color: var(--ink); background: #fff;
border: var(--hair); border-radius: 0; padding: 10px 12px; margin-top: 8px; resize: vertical;
}
textarea:focus, input:focus { outline: 2px solid var(--red); outline-offset: 1px; }
.examples { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 10px 0 18px; }
.chip { font: 13px/1.2 var(--sans); background: transparent; border: 1px solid var(--ink); padding: 5px 9px; cursor: pointer; color: var(--ink); text-align: left; }
.chip:hover { background: var(--ink); color: var(--paper); }
.row { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 16px; margin-bottom: 20px; }
@media (max-width: 480px) { .row { grid-template-columns: 1fr; } }
.field { display: flex; flex-direction: column; }
.seed-row { display: flex; gap: 6px; align-items: stretch; }
.seed-row input { margin-top: 8px; }
input[type=range] { width: 100%; margin-top: 16px; accent-color: var(--red); }
.btn { font: 600 13px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; border: var(--hair); background: var(--paper); color: var(--ink); padding: 14px 18px; cursor: pointer; border-radius: 0; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.btn.primary { width: 100%; background: var(--ink); color: var(--paper); }
.btn.primary:hover:not(:disabled) { background: var(--red); border-color: var(--red); }
.btn:disabled { opacity: .45; cursor: default; }
.btn.icon { margin-top: 8px; padding: 0 12px; font-size: 18px; letter-spacing: 0; }
.btn.ghost:hover { background: var(--ink); color: var(--paper); }
.btn.small { padding: 9px 12px; font-size: 11px; }
.progress { margin-top: 16px; }
.bar { height: 8px; border: var(--hair); background: #fff; }
#bar-fill { height: 100%; width: 0; background: var(--red); transition: width .12s linear; }
.progress-text { display: flex; justify-content: space-between; margin-top: 8px; gap: 12px; }
.out-head, .out-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.out-foot { align-items: flex-start; margin-top: 12px; }
.toggle { cursor: pointer; }
.toggle input { accent-color: var(--red); margin: 0; }
.frame { position: relative; margin-top: 10px; border: var(--hair); background: #fff; aspect-ratio: 1 / 1; width: 100%; }
#canvas { width: 100%; height: 100%; display: block; image-rendering: auto; }
.frame.crisp #canvas { image-rendering: pixelated; }
.placeholder { position: absolute; inset: 0; display: grid; place-items: center; background: var(--paper); }
.placeholder img { width: 28%; opacity: .14; }
.frame.busy .placeholder img { animation: pulse 1.2s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .32; } }
.timings { display: grid; grid-template-columns: auto auto; gap: 2px 14px; margin: 0; font: 12px/1.5 var(--mono); }
.timings dt { color: var(--mute); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; }
.timings dd { margin: 0; }
.foot p { margin: 0 0 8px; }
.foot .strong { font: 700 18px/1.3 var(--head); }
.foot .label { display: flex; flex-wrap: wrap; gap: 4px 8px; }
@media (max-width: 520px) {
.page { padding: 20px 16px 32px; }
.mast-meta .label.dim { display: none; }
.progress-text { flex-wrap: wrap; }
}
/* version selector, resolution, AI-generated note (2026-09-29) */
.versions { margin-top: 24px; }
.seg { display: flex; flex-wrap: wrap; gap: 0; margin-top: 8px; }
.seg button { font: 600 13px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; background: var(--paper); color: var(--ink);
border: var(--hair); margin-left: -1.5px; padding: 11px 16px; cursor: pointer; border-radius: 0; display: inline-flex; flex-direction: column; align-items: flex-start; gap: 5px; }
.seg button:first-child { margin-left: 0; }
.seg button small { font: 400 11px/1 var(--mono); letter-spacing: .06em; text-transform: none; color: var(--mute); }
.seg button[aria-checked="true"] { background: var(--ink); color: var(--paper); }
.seg button[aria-checked="true"] small { color: #c9c6bf; }
.seg button:hover:not([aria-checked="true"]):not(:disabled) { background: #fff; color: var(--red); }
.seg button:disabled { opacity: .45; cursor: default; }
.seg.small button { padding: 9px 12px; font-size: 12px; }
.ver-note { margin: 10px 0 0; max-width: 70ch; color: #2a2824; font-size: 15px; }
input[type=text] { width: 100%; font: 15px/1.45 var(--sans); color: var(--ink); background: #fff; border: var(--hair); border-radius: 0; padding: 8px 12px; margin: 8px 0 18px; }
.label .dim { color: var(--mute); text-transform: none; letter-spacing: .02em; }
.res-row { grid-template-columns: 1fr; }
.prepared { font: 12px/1.5 var(--mono); color: var(--mute); margin: 12px 0 0; overflow-wrap: anywhere; }
.ai-note { display: flex; gap: 10px; align-items: baseline; margin: 10px 0 0; font-size: 14px; line-height: 1.45; border-left: 3px solid var(--red); padding: 6px 0 6px 10px; background: #fff; }
.ai-note .sq { position: relative; top: 1px; }
.small-print { font-size: 13.5px; color: #2a2824; max-width: 90ch; }
.small-print code { font: 12.5px var(--mono); }
@media (max-width: 520px) {
#versions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
#versions button { padding: 10px 8px; font-size: 12px; letter-spacing: .06em; }
}
/* thinker preview (plan + expected image), 2026-09-29 */
.toggles { display: inline-flex; gap: 14px; flex-wrap: wrap; justify-content: flex-end; }
.thinker { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
.thinker figure { margin: 0; }
.thinker canvas { width: 100%; aspect-ratio: 1 / 1; display: block; border: var(--hair); image-rendering: pixelated; background: #fff; }
.thinker #pred-canvas { image-rendering: auto; }
.thinker figcaption { margin-top: 6px; }
.thinker-note { grid-column: 1 / -1; margin: 0; font-size: 13px; color: var(--mute); }
.label .toggle.fast { margin-left: 10px; text-transform: uppercase; letter-spacing: .1em; color: var(--ink); }
.label .toggle.fast input { accent-color: var(--red); margin: 0 4px 0 0; vertical-align: -1px; }
|