Markdown -> Semble importer
at canon 300 lines 5.3 kB view raw
1@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,300;6..72,500;6..72,700&display=swap"); 2 3:root { 4 color-scheme: light; 5 font-family: "Newsreader", "Times New Roman", serif; 6 --font-display: "Space Grotesk", "Segoe UI", sans-serif; 7 --color-ink: #12100f; 8 --color-ink-muted: #4c433f; 9 --color-paper: #fdf7ef; 10 --color-amber: #f28c28; 11 --color-olive: #3d4a2f; 12 --color-clay: #c9562a; 13 --color-moss: #b7c59b; 14 --color-cream: #f4f0e8; 15 --color-border: rgba(18, 16, 15, 0.12); 16 --shadow-soft: 0 20px 50px rgba(18, 16, 15, 0.12); 17} 18 19* { 20 box-sizing: border-box; 21} 22 23body { 24 margin: 0; 25 min-height: 100vh; 26 background: 27 radial-gradient(circle at 10% 10%, rgba(242, 140, 40, 0.2), transparent 45%), 28 radial-gradient(circle at 90% 0%, rgba(61, 74, 47, 0.18), transparent 55%), 29 linear-gradient(135deg, #fbf3e6 0%, #f7efe3 45%, #f4eadb 100%); 30 color: var(--color-ink); 31} 32 33a { 34 color: inherit; 35} 36 37button, 38input, 39textarea, 40select { 41 font: inherit; 42} 43 44#app { 45 min-height: 100vh; 46 display: flex; 47 justify-content: center; 48} 49 50.app-shell { 51 width: min(1200px, 100%); 52 padding: 40px 24px 80px; 53 display: grid; 54 gap: 24px; 55 position: relative; 56} 57 58.hero { 59 display: grid; 60 gap: 12px; 61 padding: 32px 28px; 62 border-radius: 28px; 63 background: var(--color-paper); 64 box-shadow: var(--shadow-soft); 65 border: 1px solid var(--color-border); 66 position: relative; 67 overflow: hidden; 68 text-align: center; 69} 70 71.brand { 72 display: grid; 73 gap: 12px; 74 justify-items: center; 75} 76 77.brand-logo { 78 width: min(360px, 100%); 79 height: auto; 80 border-radius: 18px; 81 background: #ffffff; 82 padding: 12px 16px; 83 box-shadow: 0 12px 24px rgba(18, 16, 15, 0.14); 84} 85 86.hero::after { 87 content: none; 88} 89 90.hero h1 { 91 font-family: var(--font-display); 92 font-size: clamp(2.4rem, 4vw, 3.4rem); 93 line-height: 1.1; 94 margin: 0; 95} 96 97.hero p { 98 margin: 0; 99 font-size: 1.05rem; 100 color: var(--color-ink-muted); 101 max-width: 680px; 102} 103 104.stack { 105 display: grid; 106 grid-template-columns: minmax(0, 1fr); 107 gap: 20px; 108} 109 110.card { 111 background: var(--color-paper); 112 border-radius: 22px; 113 padding: 20px; 114 border: 1px solid var(--color-border); 115 box-shadow: 0 16px 30px rgba(18, 16, 15, 0.08); 116 display: grid; 117 gap: 12px; 118} 119 120.card h2 { 121 font-family: var(--font-display); 122 margin: 0; 123 font-size: 1.3rem; 124} 125 126.field { 127 display: grid; 128 gap: 6px; 129} 130 131label { 132 font-family: var(--font-display); 133 font-size: 0.85rem; 134 text-transform: uppercase; 135 letter-spacing: 0.08em; 136 color: var(--color-ink-muted); 137} 138 139input, 140textarea, 141select { 142 padding: 10px 12px; 143 border-radius: 12px; 144 border: 1px solid rgba(18, 16, 15, 0.2); 145 background: #fff9f2; 146 transition: border-color 0.2s ease, box-shadow 0.2s ease; 147} 148 149input:focus, 150textarea:focus, 151select:focus { 152 outline: none; 153 border-color: var(--color-amber); 154 box-shadow: 0 0 0 3px rgba(242, 140, 40, 0.2); 155} 156 157textarea { 158 min-height: 160px; 159 resize: vertical; 160} 161 162button { 163 border: none; 164 padding: 12px 18px; 165 border-radius: 999px; 166 background: var(--color-olive); 167 color: var(--color-cream); 168 font-family: var(--font-display); 169 font-weight: 600; 170 cursor: pointer; 171 transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; 172} 173 174button:hover { 175 transform: translateY(-1px); 176 box-shadow: 0 8px 18px rgba(61, 74, 47, 0.25); 177} 178 179button.secondary { 180 background: transparent; 181 color: var(--color-olive); 182 border: 1px solid rgba(61, 74, 47, 0.35); 183} 184 185button.ghost { 186 background: transparent; 187 color: var(--color-ink); 188 border: 1px dashed rgba(18, 16, 15, 0.2); 189} 190 191.badge { 192 display: inline-flex; 193 align-items: center; 194 gap: 6px; 195 border-radius: 999px; 196 padding: 6px 12px; 197 background: rgba(61, 74, 47, 0.1); 198 color: var(--color-olive); 199 font-family: var(--font-display); 200 font-size: 0.8rem; 201} 202 203.list { 204 display: grid; 205 gap: 12px; 206} 207 208.list-item { 209 padding: 12px; 210 border-radius: 14px; 211 background: #fff9f2; 212 border: 1px solid rgba(18, 16, 15, 0.08); 213 display: grid; 214 gap: 6px; 215} 216 217.list-item strong { 218 font-family: var(--font-display); 219} 220 221.details { 222 margin-top: 12px; 223} 224 225.details > summary { 226 cursor: pointer; 227 font-family: var(--font-display); 228 list-style: none; 229} 230 231.details > summary::-webkit-details-marker { 232 display: none; 233} 234 235.list-item .code-block { 236 margin: 0; 237 padding: 10px 12px; 238 border-radius: 12px; 239 background: rgba(18, 16, 15, 0.06); 240 font-size: 0.78rem; 241 line-height: 1.5; 242 white-space: pre-wrap; 243 word-break: break-word; 244} 245 246.notice { 247 padding: 12px 14px; 248 border-radius: 12px; 249 background: rgba(242, 140, 40, 0.12); 250 color: var(--color-ink); 251} 252 253 254.fade-in { 255 animation: fadeIn 0.8s ease forwards; 256} 257 258.stagger > * { 259 opacity: 0; 260 transform: translateY(6px); 261 animation: fadeUp 0.6s ease forwards; 262} 263 264.stagger > *:nth-child(1) { 265 animation-delay: 0.05s; 266} 267 268.stagger > *:nth-child(2) { 269 animation-delay: 0.12s; 270} 271 272.stagger > *:nth-child(3) { 273 animation-delay: 0.18s; 274} 275 276.stagger > *:nth-child(4) { 277 animation-delay: 0.24s; 278} 279 280@keyframes fadeIn { 281 from { 282 opacity: 0; 283 transform: translateY(4px); 284 } 285 to { 286 opacity: 1; 287 transform: translateY(0); 288 } 289} 290 291@keyframes fadeUp { 292 from { 293 opacity: 0; 294 transform: translateY(8px); 295 } 296 to { 297 opacity: 1; 298 transform: translateY(0); 299 } 300}