/* =========================================================
   THIỆP CƯỚI "SẮC SON" — Đỏ son × Be × Vàng · phong cách Việt Nam
   (nhẫn cưới, chim bồ câu, ca dao)
   ========================================================= */
:root{
  --red:#a8201e;
  --red-l:#c0302a;
  --red-d:#861815;
  --beige:#f8eedb;
  --beige-2:#efdfc0;
  --paper:#fffaf0;
  --gold:#d9ae5c;
  --gold-2:#f3dca0;
  --gold-3:#a97c2f;
  --ink:#4a1c14;
  --radius:16px;
  --script:'Great Vibes',cursive;
  --serif:'Playfair Display',serif;
  --sans:'Be Vietnam Pro',system-ui,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  --lotus-tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cg fill='none' stroke='%23a8201e' stroke-opacity='.13' stroke-linejoin='round'%3E%3Cg transform='translate(57.0 20.5) scale(0.5750) translate(-10.0 -14.0)'%3E%3Cdefs%3E%3Cmask id='pmr' maskUnits='userSpaceOnUse' x='0' y='0' width='110' height='90'%3E%3Crect width='110' height='90' fill='white'/%3E%3Cpath d='M14.399999999999999 56a23.6 23.6 0 1 0 47.2 0a23.6 23.6 0 1 0 -47.2 0ZM20.1 56a17.9 17.9 0 1 0 35.8 0a17.9 17.9 0 1 0 -35.8 0Z' fill-rule='evenodd' fill='black'/%3E%3Crect x='0' y='56' width='110' height='60' fill='white'/%3E%3C/mask%3E%3Cmask id='pml' maskUnits='userSpaceOnUse' x='0' y='0' width='110' height='90'%3E%3Crect width='110' height='90' fill='white'/%3E%3Cpath d='M40.4 56a23.6 23.6 0 1 0 47.2 0a23.6 23.6 0 1 0 -47.2 0ZM46.1 56a17.9 17.9 0 1 0 35.8 0a17.9 17.9 0 1 0 -35.8 0Z' fill-rule='evenodd' fill='black'/%3E%3Crect x='0' y='0' width='110' height='56' fill='white'/%3E%3Cpath d='M31 25L35 19H45L49 25L40 35Z' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Cg fill='none' stroke-linejoin='round' stroke-linecap='round' stroke-width='2.3'%3E%3Cpath mask='url(%23pml)' d='M15 56a23 23 0 1 0 46 0a23 23 0 1 0 -46 0M19.5 56a18.5 18.5 0 1 0 37.0 0a18.5 18.5 0 1 0 -37.0 0'/%3E%3Cpath mask='url(%23pmr)' d='M41 56a23 23 0 1 0 46 0a23 23 0 1 0 -46 0M45.5 56a18.5 18.5 0 1 0 37.0 0a18.5 18.5 0 1 0 -37.0 0'/%3E%3Cpath d='M31 25L35 19H45L49 25L40 35Z'/%3E%3Cpath d='M31 25H49M38 19L37 25L40 35M42 19L43 25L40 35'/%3E%3C/g%3E%3C/g%3E%3Cg stroke-width='4.5' transform='translate(-32.0 96.1) scale(0.2909) translate(-27.0 -86.0)'%3E%3Cpath d='M62 243C63 243 64 242 64 242C65 242 65 241 66 241C67 240 68 240 68 241C69 243 70 243 70 244C71 244 72 244 74 242C74 242 75 241 75 241C76 241 76 242 77 242C78 243 78 243 79 243C80 243 83 240 84 237C85 236 86 236 86 237C87 237 88 238 89 238C90 238 93 235 94 233C94 232 95 232 95 232C95 232 96 232 96 231C96 230 97 229 97 229C97 228 98 227 98 227C98 226 98 225 99 225C99 224 100 222 100 222C100 219 102 216 103 215C103 215 105 215 106 214C109 214 110 214 111 213C111 213 112 212 113 212C114 211 118 208 118 207C118 206 119 206 119 205C119 204 120 203 120 203C120 202 120 201 121 200C122 198 122 196 122 187C123 184 123 181 123 180C123 179 124 178 124 176C124 175 124 174 125 173C127 170 127 170 129 170L131 169 L132 170C133 170 134 171 134 171C135 172 136 172 136 171C136 170 135 168 134 168L133 167 L133 166C133 162 131 159 128 158C125 158 120 158 119 159C118 159 118 160 117 160C116 161 113 163 111 166C110 166 110 168 109 168C109 169 108 170 108 170C108 171 107 172 107 172C106 172 106 173 106 173C106 174 104 176 103 176C102 176 102 177 103 178C104 178 105 179 106 180C108 182 108 183 108 184C108 184 108 185 109 185C110 185 110 187 110 189C110 192 110 193 109 194C108 194 108 195 108 195C108 196 104 200 103 200C103 200 102 201 102 201C102 202 101 202 100 202C100 202 99 203 98 203C98 204 97 204 96 204C96 204 95 204 95 205C94 206 94 206 92 206C92 206 91 206 91 207C90 207 90 208 89 208C87 208 87 209 86 211C86 211 85 212 85 213C85 213 84 214 84 215C84 216 83 217 83 217C83 218 82 219 82 219C80 222 73 230 70 232C69 232 68 233 68 233C68 234 67 234 67 234C66 234 66 235 65 235C65 235 64 236 63 236C63 236 62 237 61 237C61 238 60 238 60 238C59 238 57 241 57 242C57 244 60 244 62 243ZM217 213C218 213 218 212 218 211C217 210 214 207 212 206C211 206 210 205 210 205C210 205 209 204 208 204C207 204 206 203 206 203C206 203 205 202 205 202C205 202 204 202 204 201C199 197 198 197 193 190C193 190 192 189 192 188C192 187 191 186 191 186C191 186 190 185 190 184C190 183 189 182 189 182C189 182 188 181 188 180C187 178 187 178 186 178C185 178 184 177 184 177C184 176 183 176 182 176C181 176 181 176 180 175C180 175 179 174 178 174C177 174 177 174 176 173C176 173 175 172 174 172C174 172 173 171 173 171C172 171 172 170 171 170C170 170 170 169 170 169C170 169 169 168 169 168C169 168 168 168 168 167C168 167 167 166 167 166C166 166 166 165 166 164C166 163 165 163 165 163C165 163 164 161 164 159C164 157 164 157 165 156C166 155 166 154 166 154C166 153 166 152 167 152C167 151 168 150 169 150C170 149 171 148 171 148C171 148 172 147 172 147C172 146 172 146 173 146C175 146 175 146 176 145C176 144 176 144 178 144C179 144 180 144 180 143C181 142 182 142 184 142C184 142 185 141 186 141C186 140 187 140 189 140C190 140 190 139 191 139C192 138 192 138 194 138C195 138 195 138 196 137C196 136 197 136 198 136C199 136 200 136 200 135C201 135 202 134 202 134C203 134 204 133 204 133C204 133 205 132 206 132C206 132 207 131 208 131C208 130 209 130 209 130C209 130 210 130 210 129C211 129 212 128 212 128C213 128 213 127 214 127C214 127 214 126 215 126C215 126 216 125 216 125C216 125 217 124 217 124C218 124 218 123 218 123C219 123 219 122 219 122C220 122 220 122 220 121C220 121 221 120 221 120C221 120 222 120 222 119C222 119 223 118 223 118C223 117 224 116 224 116C224 116 225 115 225 114C226 112 226 110 224 109C224 109 223 110 222 110C219 110 218 110 218 109C218 109 218 108 219 108C219 108 220 106 220 105C220 105 220 105 221 104C222 103 223 98 223 96C223 95 222 92 221 92C220 92 219 93 218 95C218 96 217 97 217 98C217 99 216 100 216 100C216 101 216 102 215 102C215 102 214 103 214 104C214 105 213 106 213 106C213 106 212 107 212 108C212 109 211 110 211 110C209 113 208 114 208 115C208 115 208 115 207 116C207 116 206 117 206 118C206 118 205 118 205 118C205 118 205 119 204 119C203 122 198 127 194 130C190 133 190 134 189 134C189 134 188 135 188 135C187 135 186 136 186 136C185 137 184 138 182 139C181 140 180 140 180 140C180 140 179 140 179 141C178 141 178 142 177 142C176 142 176 143 175 143C175 144 174 144 174 144C173 144 172 145 172 146C172 147 169 144 168 142C168 142 167 141 167 140C166 140 166 139 166 139C166 139 166 139 165 138C165 138 164 137 164 136C164 136 161 132 160 131C157 129 156 128 153 128C147 127 143 128 142 132C142 133 141 135 141 135C141 137 140 137 140 138C138 139 138 141 138 141C139 141 141 140 142 139C143 139 144 139 146 140C148 140 150 142 150 144C150 145 151 147 151 148C152 150 152 150 152 156C152 163 152 166 153 168C153 168 154 170 154 171C154 172 155 174 155 175C156 175 156 176 156 176C156 176 158 178 159 179C160 181 161 182 162 182C162 182 163 182 164 183C165 184 166 184 168 184C169 184 171 184 171 184C171 184 173 186 173 187C173 187 174 189 174 190C174 191 175 193 175 194C175 194 176 195 176 196C176 196 177 197 177 198C178 199 178 200 178 200C178 200 178 200 179 201C179 202 180 202 180 203C180 203 181 204 182 205C185 208 186 208 188 206C189 206 189 205 189 206C190 206 190 206 190 207C191 209 194 212 195 213C196 213 197 212 198 211C199 210 199 210 200 211C200 212 203 214 204 214C204 214 206 212 206 212C206 210 207 210 209 211C209 211 210 212 211 212C211 212 212 213 213 213C214 214 216 214 217 213ZM74 211C76 210 77 210 78 210C79 210 80 209 81 209C82 209 83 208 84 208C84 208 86 207 86 207C86 207 88 206 88 206C89 206 90 205 90 205C91 205 92 204 92 204C93 204 94 203 95 203C95 203 96 202 96 202C97 202 98 201 98 201C98 201 99 200 100 200C101 200 101 199 102 199C102 198 103 198 103 198C104 198 104 197 104 197C104 197 105 196 105 196C105 196 106 196 106 195C106 194 107 194 107 194C108 193 108 192 108 189C108 187 108 185 107 185C107 185 106 184 106 184C106 183 105 182 105 182C104 182 104 181 104 181C104 180 103 180 103 180C102 180 102 179 102 179C101 178 101 178 100 178C99 178 98 178 98 177C98 176 97 176 96 176C94 176 94 176 93 175C93 174 92 174 91 174C89 174 88 174 88 173C87 172 87 172 86 172C84 172 83 171 82 171C82 171 81 170 80 170C79 170 78 170 78 169C77 169 76 168 76 168C74 168 74 168 73 167C73 167 72 166 71 166C71 166 70 166 69 165C69 165 68 164 67 164C67 164 66 164 66 163C66 163 65 162 64 162C64 162 63 162 63 161C62 160 61 160 61 160C61 160 60 160 60 159C59 158 58 158 58 157C51 152 47 148 42 142C42 141 41 140 41 140C41 140 40 139 40 138C39 137 39 136 39 136C39 136 38 136 38 135C37 134 36 132 35 132C34 132 33 134 33 136C33 137 34 141 35 141C35 142 36 142 36 143C36 143 37 144 37 144C37 145 38 146 39 146C41 150 41 150 37 150C33 150 33 151 34 154C35 155 40 161 42 162C43 163 45 165 45 165C45 166 44 166 42 166C41 166 40 167 40 167C38 168 38 169 38 170C38 170 38 171 39 171C40 172 42 175 44 176C44 176 45 177 46 177C46 178 47 178 47 178C47 178 48 178 48 179C49 179 50 180 51 180C52 180 52 181 52 181C53 183 52 183 51 184C50 184 49 184 49 185C48 185 48 186 48 187C49 188 51 190 52 190C52 190 52 190 53 191C53 191 54 192 55 192C55 192 56 193 56 193C57 193 58 194 58 194C61 195 61 197 59 198C56 199 56 199 58 201C59 202 59 202 61 202C62 202 64 202 66 202C68 202 69 202 70 202C70 202 70 204 69 205C68 207 67 210 69 211C70 212 72 212 74 211ZM205 181C207 180 207 179 206 177C206 176 205 175 205 174C204 173 204 172 204 172C205 172 206 172 210 172L214 172 L216 171C218 170 218 169 216 168C215 167 214 166 214 165C214 165 214 164 215 164C216 164 217 164 217 163C218 163 219 162 219 162C220 162 221 161 221 161C222 160 222 160 222 160C223 160 223 159 224 158C227 156 227 155 224 154C222 153 221 151 222 150C222 150 223 150 223 150C224 150 225 149 226 149C226 148 227 148 227 148C228 148 228 148 228 147C228 147 229 147 230 146C232 145 232 145 234 143C236 141 236 140 236 138C236 138 234 136 233 136C231 136 230 135 230 135C230 134 230 133 232 132C233 131 236 128 237 127C238 127 238 126 239 126C240 125 241 122 241 121C241 120 240 120 237 120C234 120 234 120 234 119C234 119 234 119 234 118C234 118 235 117 236 116C236 115 237 114 238 113C238 113 238 112 239 112C239 111 240 109 241 106C242 105 241 104 240 103C239 102 239 102 238 102C238 103 237 104 236 105C235 108 234 109 233 110C233 110 232 111 232 111C232 112 231 112 231 112C231 112 231 113 230 113C229 116 220 125 218 126C218 126 217 127 216 127C216 128 215 128 215 128C214 128 214 129 214 129C214 129 214 130 213 130C212 130 212 131 212 131C211 131 210 132 210 132C209 132 208 133 208 133C208 134 207 134 206 134C206 134 205 135 205 135C204 136 204 136 203 136C202 136 201 136 201 137C200 138 199 138 198 138C198 138 197 138 197 139C196 139 196 139 196 139C195 140 194 140 194 140C193 140 192 140 191 141C190 142 190 142 188 142C187 142 186 142 186 143C185 143 184 144 182 144C182 144 181 144 180 145C180 146 179 146 178 146C177 146 176 146 176 147C176 147 175 148 174 148C174 148 173 149 172 149C172 149 172 150 171 150C171 150 170 151 170 151C170 152 169 152 169 152C168 152 168 153 168 154C168 154 167 155 167 156C166 157 166 157 166 159C166 162 166 162 167 162C167 162 168 163 168 164C168 165 169 166 169 166C170 166 170 166 170 167C170 167 171 168 171 168C172 168 173 169 173 169C174 169 174 170 175 170C176 170 176 171 177 171C177 171 178 172 178 172C179 172 180 173 180 173C181 173 182 174 182 174C183 174 184 175 184 175C185 176 186 176 186 176C187 176 188 177 189 177C190 177 191 178 192 178C192 178 193 178 194 179C195 179 196 180 198 180C199 180 200 181 201 181C203 181 205 181 205 181ZM102 176C102 175 102 174 100 174C99 174 99 174 99 173C98 173 98 172 97 172C96 172 96 171 96 171C95 171 95 170 94 170C93 170 92 169 92 169C91 168 91 168 91 168C91 168 90 168 89 167C89 167 88 166 88 166C87 166 87 165 86 165C86 165 86 164 85 164C82 163 73 154 69 148C69 148 68 147 67 146C66 145 66 144 66 144C66 144 66 144 65 143C65 142 64 141 64 141C64 141 63 140 63 140C63 139 62 138 62 138C62 137 61 136 61 136C61 136 60 135 60 134C60 133 59 132 59 132C58 131 58 130 58 130C58 129 57 128 57 127C57 127 56 125 56 124C56 123 55 122 54 122C53 122 52 123 52 124C51 126 51 126 52 129C52 131 52 132 53 133C53 134 54 135 54 135C54 136 55 137 55 137C57 140 56 141 54 140C53 140 52 140 51 140C49 140 48 140 48 142C48 143 51 147 51 148C51 148 52 148 52 149C52 150 54 152 58 155C58 155 59 156 59 156C60 156 60 157 60 157C61 157 61 158 62 158C62 158 63 159 64 159C64 160 65 160 65 160C65 160 66 160 66 161C66 161 67 162 68 162C69 162 70 163 70 163C70 163 71 164 71 164C72 164 73 165 74 165C74 165 75 166 76 166C76 166 77 167 78 167C78 168 79 168 80 168C81 168 82 168 83 169C83 170 84 170 85 170C87 170 88 170 88 171C89 172 89 172 90 172C92 172 93 172 94 173C94 174 95 174 96 174C98 174 98 174 99 175C99 176 102 176 102 176Z'/%3E%3C/g%3E%3Cg stroke-width='4.5' transform='translate(128.0 96.1) scale(0.2909) translate(-27.0 -86.0)'%3E%3Cpath d='M62 243C63 243 64 242 64 242C65 242 65 241 66 241C67 240 68 240 68 241C69 243 70 243 70 244C71 244 72 244 74 242C74 242 75 241 75 241C76 241 76 242 77 242C78 243 78 243 79 243C80 243 83 240 84 237C85 236 86 236 86 237C87 237 88 238 89 238C90 238 93 235 94 233C94 232 95 232 95 232C95 232 96 232 96 231C96 230 97 229 97 229C97 228 98 227 98 227C98 226 98 225 99 225C99 224 100 222 100 222C100 219 102 216 103 215C103 215 105 215 106 214C109 214 110 214 111 213C111 213 112 212 113 212C114 211 118 208 118 207C118 206 119 206 119 205C119 204 120 203 120 203C120 202 120 201 121 200C122 198 122 196 122 187C123 184 123 181 123 180C123 179 124 178 124 176C124 175 124 174 125 173C127 170 127 170 129 170L131 169 L132 170C133 170 134 171 134 171C135 172 136 172 136 171C136 170 135 168 134 168L133 167 L133 166C133 162 131 159 128 158C125 158 120 158 119 159C118 159 118 160 117 160C116 161 113 163 111 166C110 166 110 168 109 168C109 169 108 170 108 170C108 171 107 172 107 172C106 172 106 173 106 173C106 174 104 176 103 176C102 176 102 177 103 178C104 178 105 179 106 180C108 182 108 183 108 184C108 184 108 185 109 185C110 185 110 187 110 189C110 192 110 193 109 194C108 194 108 195 108 195C108 196 104 200 103 200C103 200 102 201 102 201C102 202 101 202 100 202C100 202 99 203 98 203C98 204 97 204 96 204C96 204 95 204 95 205C94 206 94 206 92 206C92 206 91 206 91 207C90 207 90 208 89 208C87 208 87 209 86 211C86 211 85 212 85 213C85 213 84 214 84 215C84 216 83 217 83 217C83 218 82 219 82 219C80 222 73 230 70 232C69 232 68 233 68 233C68 234 67 234 67 234C66 234 66 235 65 235C65 235 64 236 63 236C63 236 62 237 61 237C61 238 60 238 60 238C59 238 57 241 57 242C57 244 60 244 62 243ZM217 213C218 213 218 212 218 211C217 210 214 207 212 206C211 206 210 205 210 205C210 205 209 204 208 204C207 204 206 203 206 203C206 203 205 202 205 202C205 202 204 202 204 201C199 197 198 197 193 190C193 190 192 189 192 188C192 187 191 186 191 186C191 186 190 185 190 184C190 183 189 182 189 182C189 182 188 181 188 180C187 178 187 178 186 178C185 178 184 177 184 177C184 176 183 176 182 176C181 176 181 176 180 175C180 175 179 174 178 174C177 174 177 174 176 173C176 173 175 172 174 172C174 172 173 171 173 171C172 171 172 170 171 170C170 170 170 169 170 169C170 169 169 168 169 168C169 168 168 168 168 167C168 167 167 166 167 166C166 166 166 165 166 164C166 163 165 163 165 163C165 163 164 161 164 159C164 157 164 157 165 156C166 155 166 154 166 154C166 153 166 152 167 152C167 151 168 150 169 150C170 149 171 148 171 148C171 148 172 147 172 147C172 146 172 146 173 146C175 146 175 146 176 145C176 144 176 144 178 144C179 144 180 144 180 143C181 142 182 142 184 142C184 142 185 141 186 141C186 140 187 140 189 140C190 140 190 139 191 139C192 138 192 138 194 138C195 138 195 138 196 137C196 136 197 136 198 136C199 136 200 136 200 135C201 135 202 134 202 134C203 134 204 133 204 133C204 133 205 132 206 132C206 132 207 131 208 131C208 130 209 130 209 130C209 130 210 130 210 129C211 129 212 128 212 128C213 128 213 127 214 127C214 127 214 126 215 126C215 126 216 125 216 125C216 125 217 124 217 124C218 124 218 123 218 123C219 123 219 122 219 122C220 122 220 122 220 121C220 121 221 120 221 120C221 120 222 120 222 119C222 119 223 118 223 118C223 117 224 116 224 116C224 116 225 115 225 114C226 112 226 110 224 109C224 109 223 110 222 110C219 110 218 110 218 109C218 109 218 108 219 108C219 108 220 106 220 105C220 105 220 105 221 104C222 103 223 98 223 96C223 95 222 92 221 92C220 92 219 93 218 95C218 96 217 97 217 98C217 99 216 100 216 100C216 101 216 102 215 102C215 102 214 103 214 104C214 105 213 106 213 106C213 106 212 107 212 108C212 109 211 110 211 110C209 113 208 114 208 115C208 115 208 115 207 116C207 116 206 117 206 118C206 118 205 118 205 118C205 118 205 119 204 119C203 122 198 127 194 130C190 133 190 134 189 134C189 134 188 135 188 135C187 135 186 136 186 136C185 137 184 138 182 139C181 140 180 140 180 140C180 140 179 140 179 141C178 141 178 142 177 142C176 142 176 143 175 143C175 144 174 144 174 144C173 144 172 145 172 146C172 147 169 144 168 142C168 142 167 141 167 140C166 140 166 139 166 139C166 139 166 139 165 138C165 138 164 137 164 136C164 136 161 132 160 131C157 129 156 128 153 128C147 127 143 128 142 132C142 133 141 135 141 135C141 137 140 137 140 138C138 139 138 141 138 141C139 141 141 140 142 139C143 139 144 139 146 140C148 140 150 142 150 144C150 145 151 147 151 148C152 150 152 150 152 156C152 163 152 166 153 168C153 168 154 170 154 171C154 172 155 174 155 175C156 175 156 176 156 176C156 176 158 178 159 179C160 181 161 182 162 182C162 182 163 182 164 183C165 184 166 184 168 184C169 184 171 184 171 184C171 184 173 186 173 187C173 187 174 189 174 190C174 191 175 193 175 194C175 194 176 195 176 196C176 196 177 197 177 198C178 199 178 200 178 200C178 200 178 200 179 201C179 202 180 202 180 203C180 203 181 204 182 205C185 208 186 208 188 206C189 206 189 205 189 206C190 206 190 206 190 207C191 209 194 212 195 213C196 213 197 212 198 211C199 210 199 210 200 211C200 212 203 214 204 214C204 214 206 212 206 212C206 210 207 210 209 211C209 211 210 212 211 212C211 212 212 213 213 213C214 214 216 214 217 213ZM74 211C76 210 77 210 78 210C79 210 80 209 81 209C82 209 83 208 84 208C84 208 86 207 86 207C86 207 88 206 88 206C89 206 90 205 90 205C91 205 92 204 92 204C93 204 94 203 95 203C95 203 96 202 96 202C97 202 98 201 98 201C98 201 99 200 100 200C101 200 101 199 102 199C102 198 103 198 103 198C104 198 104 197 104 197C104 197 105 196 105 196C105 196 106 196 106 195C106 194 107 194 107 194C108 193 108 192 108 189C108 187 108 185 107 185C107 185 106 184 106 184C106 183 105 182 105 182C104 182 104 181 104 181C104 180 103 180 103 180C102 180 102 179 102 179C101 178 101 178 100 178C99 178 98 178 98 177C98 176 97 176 96 176C94 176 94 176 93 175C93 174 92 174 91 174C89 174 88 174 88 173C87 172 87 172 86 172C84 172 83 171 82 171C82 171 81 170 80 170C79 170 78 170 78 169C77 169 76 168 76 168C74 168 74 168 73 167C73 167 72 166 71 166C71 166 70 166 69 165C69 165 68 164 67 164C67 164 66 164 66 163C66 163 65 162 64 162C64 162 63 162 63 161C62 160 61 160 61 160C61 160 60 160 60 159C59 158 58 158 58 157C51 152 47 148 42 142C42 141 41 140 41 140C41 140 40 139 40 138C39 137 39 136 39 136C39 136 38 136 38 135C37 134 36 132 35 132C34 132 33 134 33 136C33 137 34 141 35 141C35 142 36 142 36 143C36 143 37 144 37 144C37 145 38 146 39 146C41 150 41 150 37 150C33 150 33 151 34 154C35 155 40 161 42 162C43 163 45 165 45 165C45 166 44 166 42 166C41 166 40 167 40 167C38 168 38 169 38 170C38 170 38 171 39 171C40 172 42 175 44 176C44 176 45 177 46 177C46 178 47 178 47 178C47 178 48 178 48 179C49 179 50 180 51 180C52 180 52 181 52 181C53 183 52 183 51 184C50 184 49 184 49 185C48 185 48 186 48 187C49 188 51 190 52 190C52 190 52 190 53 191C53 191 54 192 55 192C55 192 56 193 56 193C57 193 58 194 58 194C61 195 61 197 59 198C56 199 56 199 58 201C59 202 59 202 61 202C62 202 64 202 66 202C68 202 69 202 70 202C70 202 70 204 69 205C68 207 67 210 69 211C70 212 72 212 74 211ZM205 181C207 180 207 179 206 177C206 176 205 175 205 174C204 173 204 172 204 172C205 172 206 172 210 172L214 172 L216 171C218 170 218 169 216 168C215 167 214 166 214 165C214 165 214 164 215 164C216 164 217 164 217 163C218 163 219 162 219 162C220 162 221 161 221 161C222 160 222 160 222 160C223 160 223 159 224 158C227 156 227 155 224 154C222 153 221 151 222 150C222 150 223 150 223 150C224 150 225 149 226 149C226 148 227 148 227 148C228 148 228 148 228 147C228 147 229 147 230 146C232 145 232 145 234 143C236 141 236 140 236 138C236 138 234 136 233 136C231 136 230 135 230 135C230 134 230 133 232 132C233 131 236 128 237 127C238 127 238 126 239 126C240 125 241 122 241 121C241 120 240 120 237 120C234 120 234 120 234 119C234 119 234 119 234 118C234 118 235 117 236 116C236 115 237 114 238 113C238 113 238 112 239 112C239 111 240 109 241 106C242 105 241 104 240 103C239 102 239 102 238 102C238 103 237 104 236 105C235 108 234 109 233 110C233 110 232 111 232 111C232 112 231 112 231 112C231 112 231 113 230 113C229 116 220 125 218 126C218 126 217 127 216 127C216 128 215 128 215 128C214 128 214 129 214 129C214 129 214 130 213 130C212 130 212 131 212 131C211 131 210 132 210 132C209 132 208 133 208 133C208 134 207 134 206 134C206 134 205 135 205 135C204 136 204 136 203 136C202 136 201 136 201 137C200 138 199 138 198 138C198 138 197 138 197 139C196 139 196 139 196 139C195 140 194 140 194 140C193 140 192 140 191 141C190 142 190 142 188 142C187 142 186 142 186 143C185 143 184 144 182 144C182 144 181 144 180 145C180 146 179 146 178 146C177 146 176 146 176 147C176 147 175 148 174 148C174 148 173 149 172 149C172 149 172 150 171 150C171 150 170 151 170 151C170 152 169 152 169 152C168 152 168 153 168 154C168 154 167 155 167 156C166 157 166 157 166 159C166 162 166 162 167 162C167 162 168 163 168 164C168 165 169 166 169 166C170 166 170 166 170 167C170 167 171 168 171 168C172 168 173 169 173 169C174 169 174 170 175 170C176 170 176 171 177 171C177 171 178 172 178 172C179 172 180 173 180 173C181 173 182 174 182 174C183 174 184 175 184 175C185 176 186 176 186 176C187 176 188 177 189 177C190 177 191 178 192 178C192 178 193 178 194 179C195 179 196 180 198 180C199 180 200 181 201 181C203 181 205 181 205 181ZM102 176C102 175 102 174 100 174C99 174 99 174 99 173C98 173 98 172 97 172C96 172 96 171 96 171C95 171 95 170 94 170C93 170 92 169 92 169C91 168 91 168 91 168C91 168 90 168 89 167C89 167 88 166 88 166C87 166 87 165 86 165C86 165 86 164 85 164C82 163 73 154 69 148C69 148 68 147 67 146C66 145 66 144 66 144C66 144 66 144 65 143C65 142 64 141 64 141C64 141 63 140 63 140C63 139 62 138 62 138C62 137 61 136 61 136C61 136 60 135 60 134C60 133 59 132 59 132C58 131 58 130 58 130C58 129 57 128 57 127C57 127 56 125 56 124C56 123 55 122 54 122C53 122 52 123 52 124C51 126 51 126 52 129C52 131 52 132 53 133C53 134 54 135 54 135C54 136 55 137 55 137C57 140 56 141 54 140C53 140 52 140 51 140C49 140 48 140 48 142C48 143 51 147 51 148C51 148 52 148 52 149C52 150 54 152 58 155C58 155 59 156 59 156C60 156 60 157 60 157C61 157 61 158 62 158C62 158 63 159 64 159C64 160 65 160 65 160C65 160 66 160 66 161C66 161 67 162 68 162C69 162 70 163 70 163C70 163 71 164 71 164C72 164 73 165 74 165C74 165 75 166 76 166C76 166 77 167 78 167C78 168 79 168 80 168C81 168 82 168 83 169C83 170 84 170 85 170C87 170 88 170 88 171C89 172 89 172 90 172C92 172 93 172 94 173C94 174 95 174 96 174C98 174 98 174 99 175C99 176 102 176 102 176Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  --motif-gold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cg fill='none' stroke='%23f3dca0' stroke-opacity='.14' stroke-linejoin='round'%3E%3Cg transform='translate(57.0 20.5) scale(0.5750) translate(-10.0 -14.0)'%3E%3Cdefs%3E%3Cmask id='pmr' maskUnits='userSpaceOnUse' x='0' y='0' width='110' height='90'%3E%3Crect width='110' height='90' fill='white'/%3E%3Cpath d='M14.399999999999999 56a23.6 23.6 0 1 0 47.2 0a23.6 23.6 0 1 0 -47.2 0ZM20.1 56a17.9 17.9 0 1 0 35.8 0a17.9 17.9 0 1 0 -35.8 0Z' fill-rule='evenodd' fill='black'/%3E%3Crect x='0' y='56' width='110' height='60' fill='white'/%3E%3C/mask%3E%3Cmask id='pml' maskUnits='userSpaceOnUse' x='0' y='0' width='110' height='90'%3E%3Crect width='110' height='90' fill='white'/%3E%3Cpath d='M40.4 56a23.6 23.6 0 1 0 47.2 0a23.6 23.6 0 1 0 -47.2 0ZM46.1 56a17.9 17.9 0 1 0 35.8 0a17.9 17.9 0 1 0 -35.8 0Z' fill-rule='evenodd' fill='black'/%3E%3Crect x='0' y='0' width='110' height='56' fill='white'/%3E%3Cpath d='M31 25L35 19H45L49 25L40 35Z' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Cg fill='none' stroke-linejoin='round' stroke-linecap='round' stroke-width='2.3'%3E%3Cpath mask='url(%23pml)' d='M15 56a23 23 0 1 0 46 0a23 23 0 1 0 -46 0M19.5 56a18.5 18.5 0 1 0 37.0 0a18.5 18.5 0 1 0 -37.0 0'/%3E%3Cpath mask='url(%23pmr)' d='M41 56a23 23 0 1 0 46 0a23 23 0 1 0 -46 0M45.5 56a18.5 18.5 0 1 0 37.0 0a18.5 18.5 0 1 0 -37.0 0'/%3E%3Cpath d='M31 25L35 19H45L49 25L40 35Z'/%3E%3Cpath d='M31 25H49M38 19L37 25L40 35M42 19L43 25L40 35'/%3E%3C/g%3E%3C/g%3E%3Cg stroke-width='4.5' transform='translate(-32.0 96.1) scale(0.2909) translate(-27.0 -86.0)'%3E%3Cpath d='M62 243C63 243 64 242 64 242C65 242 65 241 66 241C67 240 68 240 68 241C69 243 70 243 70 244C71 244 72 244 74 242C74 242 75 241 75 241C76 241 76 242 77 242C78 243 78 243 79 243C80 243 83 240 84 237C85 236 86 236 86 237C87 237 88 238 89 238C90 238 93 235 94 233C94 232 95 232 95 232C95 232 96 232 96 231C96 230 97 229 97 229C97 228 98 227 98 227C98 226 98 225 99 225C99 224 100 222 100 222C100 219 102 216 103 215C103 215 105 215 106 214C109 214 110 214 111 213C111 213 112 212 113 212C114 211 118 208 118 207C118 206 119 206 119 205C119 204 120 203 120 203C120 202 120 201 121 200C122 198 122 196 122 187C123 184 123 181 123 180C123 179 124 178 124 176C124 175 124 174 125 173C127 170 127 170 129 170L131 169 L132 170C133 170 134 171 134 171C135 172 136 172 136 171C136 170 135 168 134 168L133 167 L133 166C133 162 131 159 128 158C125 158 120 158 119 159C118 159 118 160 117 160C116 161 113 163 111 166C110 166 110 168 109 168C109 169 108 170 108 170C108 171 107 172 107 172C106 172 106 173 106 173C106 174 104 176 103 176C102 176 102 177 103 178C104 178 105 179 106 180C108 182 108 183 108 184C108 184 108 185 109 185C110 185 110 187 110 189C110 192 110 193 109 194C108 194 108 195 108 195C108 196 104 200 103 200C103 200 102 201 102 201C102 202 101 202 100 202C100 202 99 203 98 203C98 204 97 204 96 204C96 204 95 204 95 205C94 206 94 206 92 206C92 206 91 206 91 207C90 207 90 208 89 208C87 208 87 209 86 211C86 211 85 212 85 213C85 213 84 214 84 215C84 216 83 217 83 217C83 218 82 219 82 219C80 222 73 230 70 232C69 232 68 233 68 233C68 234 67 234 67 234C66 234 66 235 65 235C65 235 64 236 63 236C63 236 62 237 61 237C61 238 60 238 60 238C59 238 57 241 57 242C57 244 60 244 62 243ZM217 213C218 213 218 212 218 211C217 210 214 207 212 206C211 206 210 205 210 205C210 205 209 204 208 204C207 204 206 203 206 203C206 203 205 202 205 202C205 202 204 202 204 201C199 197 198 197 193 190C193 190 192 189 192 188C192 187 191 186 191 186C191 186 190 185 190 184C190 183 189 182 189 182C189 182 188 181 188 180C187 178 187 178 186 178C185 178 184 177 184 177C184 176 183 176 182 176C181 176 181 176 180 175C180 175 179 174 178 174C177 174 177 174 176 173C176 173 175 172 174 172C174 172 173 171 173 171C172 171 172 170 171 170C170 170 170 169 170 169C170 169 169 168 169 168C169 168 168 168 168 167C168 167 167 166 167 166C166 166 166 165 166 164C166 163 165 163 165 163C165 163 164 161 164 159C164 157 164 157 165 156C166 155 166 154 166 154C166 153 166 152 167 152C167 151 168 150 169 150C170 149 171 148 171 148C171 148 172 147 172 147C172 146 172 146 173 146C175 146 175 146 176 145C176 144 176 144 178 144C179 144 180 144 180 143C181 142 182 142 184 142C184 142 185 141 186 141C186 140 187 140 189 140C190 140 190 139 191 139C192 138 192 138 194 138C195 138 195 138 196 137C196 136 197 136 198 136C199 136 200 136 200 135C201 135 202 134 202 134C203 134 204 133 204 133C204 133 205 132 206 132C206 132 207 131 208 131C208 130 209 130 209 130C209 130 210 130 210 129C211 129 212 128 212 128C213 128 213 127 214 127C214 127 214 126 215 126C215 126 216 125 216 125C216 125 217 124 217 124C218 124 218 123 218 123C219 123 219 122 219 122C220 122 220 122 220 121C220 121 221 120 221 120C221 120 222 120 222 119C222 119 223 118 223 118C223 117 224 116 224 116C224 116 225 115 225 114C226 112 226 110 224 109C224 109 223 110 222 110C219 110 218 110 218 109C218 109 218 108 219 108C219 108 220 106 220 105C220 105 220 105 221 104C222 103 223 98 223 96C223 95 222 92 221 92C220 92 219 93 218 95C218 96 217 97 217 98C217 99 216 100 216 100C216 101 216 102 215 102C215 102 214 103 214 104C214 105 213 106 213 106C213 106 212 107 212 108C212 109 211 110 211 110C209 113 208 114 208 115C208 115 208 115 207 116C207 116 206 117 206 118C206 118 205 118 205 118C205 118 205 119 204 119C203 122 198 127 194 130C190 133 190 134 189 134C189 134 188 135 188 135C187 135 186 136 186 136C185 137 184 138 182 139C181 140 180 140 180 140C180 140 179 140 179 141C178 141 178 142 177 142C176 142 176 143 175 143C175 144 174 144 174 144C173 144 172 145 172 146C172 147 169 144 168 142C168 142 167 141 167 140C166 140 166 139 166 139C166 139 166 139 165 138C165 138 164 137 164 136C164 136 161 132 160 131C157 129 156 128 153 128C147 127 143 128 142 132C142 133 141 135 141 135C141 137 140 137 140 138C138 139 138 141 138 141C139 141 141 140 142 139C143 139 144 139 146 140C148 140 150 142 150 144C150 145 151 147 151 148C152 150 152 150 152 156C152 163 152 166 153 168C153 168 154 170 154 171C154 172 155 174 155 175C156 175 156 176 156 176C156 176 158 178 159 179C160 181 161 182 162 182C162 182 163 182 164 183C165 184 166 184 168 184C169 184 171 184 171 184C171 184 173 186 173 187C173 187 174 189 174 190C174 191 175 193 175 194C175 194 176 195 176 196C176 196 177 197 177 198C178 199 178 200 178 200C178 200 178 200 179 201C179 202 180 202 180 203C180 203 181 204 182 205C185 208 186 208 188 206C189 206 189 205 189 206C190 206 190 206 190 207C191 209 194 212 195 213C196 213 197 212 198 211C199 210 199 210 200 211C200 212 203 214 204 214C204 214 206 212 206 212C206 210 207 210 209 211C209 211 210 212 211 212C211 212 212 213 213 213C214 214 216 214 217 213ZM74 211C76 210 77 210 78 210C79 210 80 209 81 209C82 209 83 208 84 208C84 208 86 207 86 207C86 207 88 206 88 206C89 206 90 205 90 205C91 205 92 204 92 204C93 204 94 203 95 203C95 203 96 202 96 202C97 202 98 201 98 201C98 201 99 200 100 200C101 200 101 199 102 199C102 198 103 198 103 198C104 198 104 197 104 197C104 197 105 196 105 196C105 196 106 196 106 195C106 194 107 194 107 194C108 193 108 192 108 189C108 187 108 185 107 185C107 185 106 184 106 184C106 183 105 182 105 182C104 182 104 181 104 181C104 180 103 180 103 180C102 180 102 179 102 179C101 178 101 178 100 178C99 178 98 178 98 177C98 176 97 176 96 176C94 176 94 176 93 175C93 174 92 174 91 174C89 174 88 174 88 173C87 172 87 172 86 172C84 172 83 171 82 171C82 171 81 170 80 170C79 170 78 170 78 169C77 169 76 168 76 168C74 168 74 168 73 167C73 167 72 166 71 166C71 166 70 166 69 165C69 165 68 164 67 164C67 164 66 164 66 163C66 163 65 162 64 162C64 162 63 162 63 161C62 160 61 160 61 160C61 160 60 160 60 159C59 158 58 158 58 157C51 152 47 148 42 142C42 141 41 140 41 140C41 140 40 139 40 138C39 137 39 136 39 136C39 136 38 136 38 135C37 134 36 132 35 132C34 132 33 134 33 136C33 137 34 141 35 141C35 142 36 142 36 143C36 143 37 144 37 144C37 145 38 146 39 146C41 150 41 150 37 150C33 150 33 151 34 154C35 155 40 161 42 162C43 163 45 165 45 165C45 166 44 166 42 166C41 166 40 167 40 167C38 168 38 169 38 170C38 170 38 171 39 171C40 172 42 175 44 176C44 176 45 177 46 177C46 178 47 178 47 178C47 178 48 178 48 179C49 179 50 180 51 180C52 180 52 181 52 181C53 183 52 183 51 184C50 184 49 184 49 185C48 185 48 186 48 187C49 188 51 190 52 190C52 190 52 190 53 191C53 191 54 192 55 192C55 192 56 193 56 193C57 193 58 194 58 194C61 195 61 197 59 198C56 199 56 199 58 201C59 202 59 202 61 202C62 202 64 202 66 202C68 202 69 202 70 202C70 202 70 204 69 205C68 207 67 210 69 211C70 212 72 212 74 211ZM205 181C207 180 207 179 206 177C206 176 205 175 205 174C204 173 204 172 204 172C205 172 206 172 210 172L214 172 L216 171C218 170 218 169 216 168C215 167 214 166 214 165C214 165 214 164 215 164C216 164 217 164 217 163C218 163 219 162 219 162C220 162 221 161 221 161C222 160 222 160 222 160C223 160 223 159 224 158C227 156 227 155 224 154C222 153 221 151 222 150C222 150 223 150 223 150C224 150 225 149 226 149C226 148 227 148 227 148C228 148 228 148 228 147C228 147 229 147 230 146C232 145 232 145 234 143C236 141 236 140 236 138C236 138 234 136 233 136C231 136 230 135 230 135C230 134 230 133 232 132C233 131 236 128 237 127C238 127 238 126 239 126C240 125 241 122 241 121C241 120 240 120 237 120C234 120 234 120 234 119C234 119 234 119 234 118C234 118 235 117 236 116C236 115 237 114 238 113C238 113 238 112 239 112C239 111 240 109 241 106C242 105 241 104 240 103C239 102 239 102 238 102C238 103 237 104 236 105C235 108 234 109 233 110C233 110 232 111 232 111C232 112 231 112 231 112C231 112 231 113 230 113C229 116 220 125 218 126C218 126 217 127 216 127C216 128 215 128 215 128C214 128 214 129 214 129C214 129 214 130 213 130C212 130 212 131 212 131C211 131 210 132 210 132C209 132 208 133 208 133C208 134 207 134 206 134C206 134 205 135 205 135C204 136 204 136 203 136C202 136 201 136 201 137C200 138 199 138 198 138C198 138 197 138 197 139C196 139 196 139 196 139C195 140 194 140 194 140C193 140 192 140 191 141C190 142 190 142 188 142C187 142 186 142 186 143C185 143 184 144 182 144C182 144 181 144 180 145C180 146 179 146 178 146C177 146 176 146 176 147C176 147 175 148 174 148C174 148 173 149 172 149C172 149 172 150 171 150C171 150 170 151 170 151C170 152 169 152 169 152C168 152 168 153 168 154C168 154 167 155 167 156C166 157 166 157 166 159C166 162 166 162 167 162C167 162 168 163 168 164C168 165 169 166 169 166C170 166 170 166 170 167C170 167 171 168 171 168C172 168 173 169 173 169C174 169 174 170 175 170C176 170 176 171 177 171C177 171 178 172 178 172C179 172 180 173 180 173C181 173 182 174 182 174C183 174 184 175 184 175C185 176 186 176 186 176C187 176 188 177 189 177C190 177 191 178 192 178C192 178 193 178 194 179C195 179 196 180 198 180C199 180 200 181 201 181C203 181 205 181 205 181ZM102 176C102 175 102 174 100 174C99 174 99 174 99 173C98 173 98 172 97 172C96 172 96 171 96 171C95 171 95 170 94 170C93 170 92 169 92 169C91 168 91 168 91 168C91 168 90 168 89 167C89 167 88 166 88 166C87 166 87 165 86 165C86 165 86 164 85 164C82 163 73 154 69 148C69 148 68 147 67 146C66 145 66 144 66 144C66 144 66 144 65 143C65 142 64 141 64 141C64 141 63 140 63 140C63 139 62 138 62 138C62 137 61 136 61 136C61 136 60 135 60 134C60 133 59 132 59 132C58 131 58 130 58 130C58 129 57 128 57 127C57 127 56 125 56 124C56 123 55 122 54 122C53 122 52 123 52 124C51 126 51 126 52 129C52 131 52 132 53 133C53 134 54 135 54 135C54 136 55 137 55 137C57 140 56 141 54 140C53 140 52 140 51 140C49 140 48 140 48 142C48 143 51 147 51 148C51 148 52 148 52 149C52 150 54 152 58 155C58 155 59 156 59 156C60 156 60 157 60 157C61 157 61 158 62 158C62 158 63 159 64 159C64 160 65 160 65 160C65 160 66 160 66 161C66 161 67 162 68 162C69 162 70 163 70 163C70 163 71 164 71 164C72 164 73 165 74 165C74 165 75 166 76 166C76 166 77 167 78 167C78 168 79 168 80 168C81 168 82 168 83 169C83 170 84 170 85 170C87 170 88 170 88 171C89 172 89 172 90 172C92 172 93 172 94 173C94 174 95 174 96 174C98 174 98 174 99 175C99 176 102 176 102 176Z'/%3E%3C/g%3E%3Cg stroke-width='4.5' transform='translate(128.0 96.1) scale(0.2909) translate(-27.0 -86.0)'%3E%3Cpath d='M62 243C63 243 64 242 64 242C65 242 65 241 66 241C67 240 68 240 68 241C69 243 70 243 70 244C71 244 72 244 74 242C74 242 75 241 75 241C76 241 76 242 77 242C78 243 78 243 79 243C80 243 83 240 84 237C85 236 86 236 86 237C87 237 88 238 89 238C90 238 93 235 94 233C94 232 95 232 95 232C95 232 96 232 96 231C96 230 97 229 97 229C97 228 98 227 98 227C98 226 98 225 99 225C99 224 100 222 100 222C100 219 102 216 103 215C103 215 105 215 106 214C109 214 110 214 111 213C111 213 112 212 113 212C114 211 118 208 118 207C118 206 119 206 119 205C119 204 120 203 120 203C120 202 120 201 121 200C122 198 122 196 122 187C123 184 123 181 123 180C123 179 124 178 124 176C124 175 124 174 125 173C127 170 127 170 129 170L131 169 L132 170C133 170 134 171 134 171C135 172 136 172 136 171C136 170 135 168 134 168L133 167 L133 166C133 162 131 159 128 158C125 158 120 158 119 159C118 159 118 160 117 160C116 161 113 163 111 166C110 166 110 168 109 168C109 169 108 170 108 170C108 171 107 172 107 172C106 172 106 173 106 173C106 174 104 176 103 176C102 176 102 177 103 178C104 178 105 179 106 180C108 182 108 183 108 184C108 184 108 185 109 185C110 185 110 187 110 189C110 192 110 193 109 194C108 194 108 195 108 195C108 196 104 200 103 200C103 200 102 201 102 201C102 202 101 202 100 202C100 202 99 203 98 203C98 204 97 204 96 204C96 204 95 204 95 205C94 206 94 206 92 206C92 206 91 206 91 207C90 207 90 208 89 208C87 208 87 209 86 211C86 211 85 212 85 213C85 213 84 214 84 215C84 216 83 217 83 217C83 218 82 219 82 219C80 222 73 230 70 232C69 232 68 233 68 233C68 234 67 234 67 234C66 234 66 235 65 235C65 235 64 236 63 236C63 236 62 237 61 237C61 238 60 238 60 238C59 238 57 241 57 242C57 244 60 244 62 243ZM217 213C218 213 218 212 218 211C217 210 214 207 212 206C211 206 210 205 210 205C210 205 209 204 208 204C207 204 206 203 206 203C206 203 205 202 205 202C205 202 204 202 204 201C199 197 198 197 193 190C193 190 192 189 192 188C192 187 191 186 191 186C191 186 190 185 190 184C190 183 189 182 189 182C189 182 188 181 188 180C187 178 187 178 186 178C185 178 184 177 184 177C184 176 183 176 182 176C181 176 181 176 180 175C180 175 179 174 178 174C177 174 177 174 176 173C176 173 175 172 174 172C174 172 173 171 173 171C172 171 172 170 171 170C170 170 170 169 170 169C170 169 169 168 169 168C169 168 168 168 168 167C168 167 167 166 167 166C166 166 166 165 166 164C166 163 165 163 165 163C165 163 164 161 164 159C164 157 164 157 165 156C166 155 166 154 166 154C166 153 166 152 167 152C167 151 168 150 169 150C170 149 171 148 171 148C171 148 172 147 172 147C172 146 172 146 173 146C175 146 175 146 176 145C176 144 176 144 178 144C179 144 180 144 180 143C181 142 182 142 184 142C184 142 185 141 186 141C186 140 187 140 189 140C190 140 190 139 191 139C192 138 192 138 194 138C195 138 195 138 196 137C196 136 197 136 198 136C199 136 200 136 200 135C201 135 202 134 202 134C203 134 204 133 204 133C204 133 205 132 206 132C206 132 207 131 208 131C208 130 209 130 209 130C209 130 210 130 210 129C211 129 212 128 212 128C213 128 213 127 214 127C214 127 214 126 215 126C215 126 216 125 216 125C216 125 217 124 217 124C218 124 218 123 218 123C219 123 219 122 219 122C220 122 220 122 220 121C220 121 221 120 221 120C221 120 222 120 222 119C222 119 223 118 223 118C223 117 224 116 224 116C224 116 225 115 225 114C226 112 226 110 224 109C224 109 223 110 222 110C219 110 218 110 218 109C218 109 218 108 219 108C219 108 220 106 220 105C220 105 220 105 221 104C222 103 223 98 223 96C223 95 222 92 221 92C220 92 219 93 218 95C218 96 217 97 217 98C217 99 216 100 216 100C216 101 216 102 215 102C215 102 214 103 214 104C214 105 213 106 213 106C213 106 212 107 212 108C212 109 211 110 211 110C209 113 208 114 208 115C208 115 208 115 207 116C207 116 206 117 206 118C206 118 205 118 205 118C205 118 205 119 204 119C203 122 198 127 194 130C190 133 190 134 189 134C189 134 188 135 188 135C187 135 186 136 186 136C185 137 184 138 182 139C181 140 180 140 180 140C180 140 179 140 179 141C178 141 178 142 177 142C176 142 176 143 175 143C175 144 174 144 174 144C173 144 172 145 172 146C172 147 169 144 168 142C168 142 167 141 167 140C166 140 166 139 166 139C166 139 166 139 165 138C165 138 164 137 164 136C164 136 161 132 160 131C157 129 156 128 153 128C147 127 143 128 142 132C142 133 141 135 141 135C141 137 140 137 140 138C138 139 138 141 138 141C139 141 141 140 142 139C143 139 144 139 146 140C148 140 150 142 150 144C150 145 151 147 151 148C152 150 152 150 152 156C152 163 152 166 153 168C153 168 154 170 154 171C154 172 155 174 155 175C156 175 156 176 156 176C156 176 158 178 159 179C160 181 161 182 162 182C162 182 163 182 164 183C165 184 166 184 168 184C169 184 171 184 171 184C171 184 173 186 173 187C173 187 174 189 174 190C174 191 175 193 175 194C175 194 176 195 176 196C176 196 177 197 177 198C178 199 178 200 178 200C178 200 178 200 179 201C179 202 180 202 180 203C180 203 181 204 182 205C185 208 186 208 188 206C189 206 189 205 189 206C190 206 190 206 190 207C191 209 194 212 195 213C196 213 197 212 198 211C199 210 199 210 200 211C200 212 203 214 204 214C204 214 206 212 206 212C206 210 207 210 209 211C209 211 210 212 211 212C211 212 212 213 213 213C214 214 216 214 217 213ZM74 211C76 210 77 210 78 210C79 210 80 209 81 209C82 209 83 208 84 208C84 208 86 207 86 207C86 207 88 206 88 206C89 206 90 205 90 205C91 205 92 204 92 204C93 204 94 203 95 203C95 203 96 202 96 202C97 202 98 201 98 201C98 201 99 200 100 200C101 200 101 199 102 199C102 198 103 198 103 198C104 198 104 197 104 197C104 197 105 196 105 196C105 196 106 196 106 195C106 194 107 194 107 194C108 193 108 192 108 189C108 187 108 185 107 185C107 185 106 184 106 184C106 183 105 182 105 182C104 182 104 181 104 181C104 180 103 180 103 180C102 180 102 179 102 179C101 178 101 178 100 178C99 178 98 178 98 177C98 176 97 176 96 176C94 176 94 176 93 175C93 174 92 174 91 174C89 174 88 174 88 173C87 172 87 172 86 172C84 172 83 171 82 171C82 171 81 170 80 170C79 170 78 170 78 169C77 169 76 168 76 168C74 168 74 168 73 167C73 167 72 166 71 166C71 166 70 166 69 165C69 165 68 164 67 164C67 164 66 164 66 163C66 163 65 162 64 162C64 162 63 162 63 161C62 160 61 160 61 160C61 160 60 160 60 159C59 158 58 158 58 157C51 152 47 148 42 142C42 141 41 140 41 140C41 140 40 139 40 138C39 137 39 136 39 136C39 136 38 136 38 135C37 134 36 132 35 132C34 132 33 134 33 136C33 137 34 141 35 141C35 142 36 142 36 143C36 143 37 144 37 144C37 145 38 146 39 146C41 150 41 150 37 150C33 150 33 151 34 154C35 155 40 161 42 162C43 163 45 165 45 165C45 166 44 166 42 166C41 166 40 167 40 167C38 168 38 169 38 170C38 170 38 171 39 171C40 172 42 175 44 176C44 176 45 177 46 177C46 178 47 178 47 178C47 178 48 178 48 179C49 179 50 180 51 180C52 180 52 181 52 181C53 183 52 183 51 184C50 184 49 184 49 185C48 185 48 186 48 187C49 188 51 190 52 190C52 190 52 190 53 191C53 191 54 192 55 192C55 192 56 193 56 193C57 193 58 194 58 194C61 195 61 197 59 198C56 199 56 199 58 201C59 202 59 202 61 202C62 202 64 202 66 202C68 202 69 202 70 202C70 202 70 204 69 205C68 207 67 210 69 211C70 212 72 212 74 211ZM205 181C207 180 207 179 206 177C206 176 205 175 205 174C204 173 204 172 204 172C205 172 206 172 210 172L214 172 L216 171C218 170 218 169 216 168C215 167 214 166 214 165C214 165 214 164 215 164C216 164 217 164 217 163C218 163 219 162 219 162C220 162 221 161 221 161C222 160 222 160 222 160C223 160 223 159 224 158C227 156 227 155 224 154C222 153 221 151 222 150C222 150 223 150 223 150C224 150 225 149 226 149C226 148 227 148 227 148C228 148 228 148 228 147C228 147 229 147 230 146C232 145 232 145 234 143C236 141 236 140 236 138C236 138 234 136 233 136C231 136 230 135 230 135C230 134 230 133 232 132C233 131 236 128 237 127C238 127 238 126 239 126C240 125 241 122 241 121C241 120 240 120 237 120C234 120 234 120 234 119C234 119 234 119 234 118C234 118 235 117 236 116C236 115 237 114 238 113C238 113 238 112 239 112C239 111 240 109 241 106C242 105 241 104 240 103C239 102 239 102 238 102C238 103 237 104 236 105C235 108 234 109 233 110C233 110 232 111 232 111C232 112 231 112 231 112C231 112 231 113 230 113C229 116 220 125 218 126C218 126 217 127 216 127C216 128 215 128 215 128C214 128 214 129 214 129C214 129 214 130 213 130C212 130 212 131 212 131C211 131 210 132 210 132C209 132 208 133 208 133C208 134 207 134 206 134C206 134 205 135 205 135C204 136 204 136 203 136C202 136 201 136 201 137C200 138 199 138 198 138C198 138 197 138 197 139C196 139 196 139 196 139C195 140 194 140 194 140C193 140 192 140 191 141C190 142 190 142 188 142C187 142 186 142 186 143C185 143 184 144 182 144C182 144 181 144 180 145C180 146 179 146 178 146C177 146 176 146 176 147C176 147 175 148 174 148C174 148 173 149 172 149C172 149 172 150 171 150C171 150 170 151 170 151C170 152 169 152 169 152C168 152 168 153 168 154C168 154 167 155 167 156C166 157 166 157 166 159C166 162 166 162 167 162C167 162 168 163 168 164C168 165 169 166 169 166C170 166 170 166 170 167C170 167 171 168 171 168C172 168 173 169 173 169C174 169 174 170 175 170C176 170 176 171 177 171C177 171 178 172 178 172C179 172 180 173 180 173C181 173 182 174 182 174C183 174 184 175 184 175C185 176 186 176 186 176C187 176 188 177 189 177C190 177 191 178 192 178C192 178 193 178 194 179C195 179 196 180 198 180C199 180 200 181 201 181C203 181 205 181 205 181ZM102 176C102 175 102 174 100 174C99 174 99 174 99 173C98 173 98 172 97 172C96 172 96 171 96 171C95 171 95 170 94 170C93 170 92 169 92 169C91 168 91 168 91 168C91 168 90 168 89 167C89 167 88 166 88 166C87 166 87 165 86 165C86 165 86 164 85 164C82 163 73 154 69 148C69 148 68 147 67 146C66 145 66 144 66 144C66 144 66 144 65 143C65 142 64 141 64 141C64 141 63 140 63 140C63 139 62 138 62 138C62 137 61 136 61 136C61 136 60 135 60 134C60 133 59 132 59 132C58 131 58 130 58 130C58 129 57 128 57 127C57 127 56 125 56 124C56 123 55 122 54 122C53 122 52 123 52 124C51 126 51 126 52 129C52 131 52 132 53 133C53 134 54 135 54 135C54 136 55 137 55 137C57 140 56 141 54 140C53 140 52 140 51 140C49 140 48 140 48 142C48 143 51 147 51 148C51 148 52 148 52 149C52 150 54 152 58 155C58 155 59 156 59 156C60 156 60 157 60 157C61 157 61 158 62 158C62 158 63 159 64 159C64 160 65 160 65 160C65 160 66 160 66 161C66 161 67 162 68 162C69 162 70 163 70 163C70 163 71 164 71 164C72 164 73 165 74 165C74 165 75 166 76 166C76 166 77 167 78 167C78 168 79 168 80 168C81 168 82 168 83 169C83 170 84 170 85 170C87 170 88 170 88 171C89 172 89 172 90 172C92 172 93 172 94 173C94 174 95 174 96 174C98 174 98 174 99 175C99 176 102 176 102 176Z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:300;line-height:1.7;overflow-x:hidden;background:var(--beige);color:var(--ink);-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden;height:100vh}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
svg{fill:currentColor}
::selection{background:var(--red);color:var(--gold-2)}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--red),var(--gold));border-radius:3px}

/* ============ BANDS: be / đỏ xen kẽ ============ */
.band{position:relative;overflow:hidden;isolation:isolate}
.band.beige{background:var(--lotus-tile),linear-gradient(180deg,var(--beige),var(--beige-2));color:var(--ink);
  --h:var(--red);--sc:var(--gold-3);--mut:#8a5a48;--line:var(--red);--orn:var(--red)}
.band.red{background:var(--motif-gold),radial-gradient(ellipse at 50% 0,var(--red-l),var(--red) 55%,var(--red-d));color:var(--paper);
  --h:var(--paper);--sc:var(--gold-2);--mut:#f6d6c6;--line:var(--gold);--orn:var(--gold)}

.script{font-family:var(--script);color:var(--sc,var(--gold));font-size:clamp(32px,5vw,48px);line-height:1.2;display:block}

/* ============ LOADER ============ */
#loader{position:fixed;inset:0;z-index:999;background:var(--beige);display:grid;place-items:center;align-content:center;gap:18px;transition:opacity .8s,visibility .8s}
#loader.done{opacity:0;visibility:hidden}
.loader-rings{width:110px;height:94px;color:var(--red);animation:bloom 1.6s ease-in-out infinite}
@keyframes bloom{50%{transform:scale(1.15);filter:drop-shadow(0 0 12px rgba(168,32,30,.35))}}
.loader-bar{width:160px;height:2px;background:rgba(168,32,30,.15);overflow:hidden;border-radius:2px}
.loader-bar span{display:block;height:100%;width:40%;background:var(--red);animation:load 1.2s ease-in-out infinite}
@keyframes load{from{transform:translateX(-100%)}to{transform:translateX(260%)}}
#loader p{font-size:12px;letter-spacing:4px;text-transform:uppercase;color:var(--red)}

/* ============ COVER: mở phong thư ============ */
#cover{position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:20px;
  background:var(--motif-gold),radial-gradient(ellipse at 50% 35%,var(--red-l),var(--red) 55%,var(--red-d));transition:transform 1.2s var(--ease),opacity 1.2s}
#cover.gone{transform:translateY(-100%);opacity:0;pointer-events:none}
.cover-sparkles{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.cover-sparkles i{position:absolute;color:var(--gold-2);font-style:normal;font-size:var(--z);opacity:.2;animation:twinkle var(--d) ease-in-out infinite}
@keyframes twinkle{50%{opacity:1;transform:scale(1.4) rotate(45deg)}}
.cover-top{text-align:center;position:relative;animation:fadeUp 1s .3s both}
.cover-guest{font-size:12px;letter-spacing:5px;text-transform:uppercase;color:var(--gold-2)}
.cover-name{font-family:var(--script);font-size:clamp(40px,8vw,62px);color:var(--gold-2);line-height:1.3;text-shadow:0 2px 10px rgba(0,0,0,.25)}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}}
.cover-cta{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold-2);animation:pulseTxt 2s infinite;position:relative}
.envelope{position:relative;width:min(88vw,400px);aspect-ratio:3/2;perspective:1200px;animation:floatY 4s ease-in-out infinite;margin-top:10px}
@keyframes floatY{50%{transform:translateY(-10px)}}
.env-back,.env-front,.env-flap{position:absolute;inset:0;border-radius:6px}
.env-back{background:linear-gradient(160deg,#ead8b3,#dcc394);box-shadow:0 30px 60px rgba(60,5,5,.45)}
/* mặt trước: kín, chỉ khoét 1 tam giác ngược nhỏ (nhỏ hơn nắp) để lộ 1 phần thiệp khi nắp mở */
.env-front{z-index:3;clip-path:polygon(0 0,9% 0,50% 52%,91% 0,100% 0,100% 100%,0 100%);
  background:
    linear-gradient(to bottom right,transparent calc(50% - .7px),rgba(169,124,47,.5) 50%,transparent calc(50% + .7px)) left bottom/50% 48% no-repeat,
    linear-gradient(to bottom left,transparent calc(50% - .7px),rgba(169,124,47,.5) 50%,transparent calc(50% + .7px)) right bottom/50% 48% no-repeat,
    linear-gradient(160deg,#fbf2df,#efdcb6)}
.env-front::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom right,rgba(169,124,47,.55),rgba(169,124,47,.55)) 0 0/0 0 no-repeat;
  clip-path:polygon(9% 0,50% 52%,91% 0,90.2% 0,50% 50.6%,9.8% 0);background-color:rgba(169,124,47,.55)}
/* nắp: tam giác ngược cao 7/10 chiều cao thư */
.env-flap{z-index:4;transform-origin:top center;transition:transform 1s var(--ease),z-index 0s .5s;
  clip-path:polygon(0 0,100% 0,50% 70%);background:linear-gradient(#ecdab5,#d9bf8e)}
.env-flap::after{content:"";position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 70%,50% 67%,97% 2%,3% 2%,50% 67%,50% 70%);background:var(--gold-3);opacity:.55}
#cover.opening .env-flap{transform:rotateX(180deg);z-index:1}
.env-letter{position:absolute;left:5%;right:5%;top:5%;height:92%;z-index:2;background:var(--paper);color:var(--ink);border-radius:4px;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding-top:7%;text-align:center;
  border:1px solid var(--gold);outline:1px solid var(--red);outline-offset:-7px;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform 1.3s var(--ease)}
.el-rings{width:44px;height:38px;color:var(--red);margin-bottom:2px}
/* giai đoạn 1: nắp mở → nhìn thấy 1 phần thiệp qua khe tam giác; giai đoạn 2: rút hẳn thiệp ra */
#cover.opening.stage2 .env-letter{transform:translateY(-78%)}
.el-save{font-family:var(--script);font-size:30px;color:var(--gold-3);line-height:1.1}
.env-letter strong{font-family:var(--serif);font-size:clamp(18px,4.6vw,23px);font-weight:600;color:var(--red)}
.el-line{width:60px;height:1px;background:var(--gold-3);margin:4px 0}
.env-letter small{letter-spacing:4px;color:var(--ink)}
.env-seal{position:absolute;z-index:5;left:50%;top:64%;width:78px;height:78px;transform:translate(-50%,-50%);border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 30%,#d8453d,var(--red-d) 72%);color:var(--gold-2);
  box-shadow:0 4px 12px rgba(0,0,0,.35),inset 0 0 0 4px rgba(255,255,255,.08),inset 0 0 0 7px rgba(0,0,0,.15);transition:transform .6s var(--ease),opacity .5s}
.env-seal svg{width:44px;height:44px}
.env-seal::before{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid rgba(243,220,160,.7);animation:ripple 1.8s infinite}
.env-seal:hover{transform:translate(-50%,-50%) scale(1.1) rotate(-8deg)}
#cover.opening .env-seal{transform:translate(-50%,-50%) scale(0) rotate(180deg);opacity:0}
@keyframes ripple{from{transform:scale(.9);opacity:1}to{transform:scale(1.5);opacity:0}}
#cover.opening .cover-top{opacity:0;transform:translateY(-30px);transition:.6s}
#cover.opening .cover-cta{opacity:0;animation:none;transition:opacity .4s}

/* ============ FX ============ */
#petals{position:fixed;inset:0;pointer-events:none;z-index:60}
#fireworks{position:fixed;inset:0;pointer-events:none;z-index:920}
#cursor-trail{position:fixed;inset:0;pointer-events:none;z-index:950}
.spark{position:fixed;width:6px;height:6px;border-radius:50%;pointer-events:none;background:var(--gold-2);box-shadow:0 0 8px var(--gold);animation:spark .9s forwards}
@keyframes spark{to{transform:translate(var(--x),var(--y)) scale(0);opacity:0}}
.burst{position:fixed;pointer-events:none;z-index:960;animation:burst 1s var(--ease) forwards;line-height:1}
.burst svg{width:1em;height:1em}
@keyframes burst{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}100%{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.2) rotate(var(--r));opacity:0}}
#progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:400;background:linear-gradient(90deg,var(--red),var(--gold));box-shadow:0 0 8px var(--gold)}

/* ============ MUSIC: nốt nhạc ============ */
.music{position:fixed;right:18px;bottom:18px;z-index:300}
.music-btn{position:relative;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 30%,var(--red-l),var(--red-d));border:2px solid var(--gold);box-shadow:0 6px 20px rgba(0,0,0,.3)}
.music-btn .note{width:28px;height:28px;color:var(--gold-2);position:relative;z-index:2;transition:transform .4s}
.music-btn .ring{position:absolute;inset:-7px;border-radius:50%;border:2px dashed var(--gold);opacity:.0;transition:opacity .4s}
.music-btn .wave{position:absolute;inset:0;border-radius:50%;border:2px solid var(--gold);opacity:0}
.music-btn .mute{position:absolute;width:36px;height:2.5px;background:var(--gold-2);transform:rotate(-45deg);border-radius:2px;z-index:3;box-shadow:0 0 0 1.5px var(--red-d);transition:transform .3s}
.music-btn.playing .mute{transform:rotate(-45deg) scaleX(0)}
.music-btn.playing .ring{opacity:.9;animation:spin 6s linear infinite}
.music-btn.playing .wave{animation:wave 2s ease-out infinite}
.music-btn.playing .wave.w2{animation-delay:1s}
.music-btn.playing .note{animation:noteDance .9s ease-in-out infinite}
.music-btn:hover .note{transform:scale(1.15)}
@keyframes wave{from{transform:scale(1);opacity:.8}to{transform:scale(1.9);opacity:0}}
@keyframes noteDance{0%,100%{transform:rotate(-12deg) translateY(0)}50%{transform:rotate(12deg) translateY(-3px)}}
.float-note{position:fixed;pointer-events:none;z-index:299;color:var(--gold);font-size:18px;text-shadow:0 0 6px rgba(217,174,92,.7);animation:floatNote 2.6s ease-out forwards}
@keyframes floatNote{0%{opacity:0;transform:translate(0,0) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translate(var(--x),-120px) scale(1.2) rotate(var(--r))}}
.music-tip{position:absolute;right:70px;top:50%;transform:translate(10px,-50%);white-space:nowrap;background:var(--paper);color:var(--red);border:1px solid var(--gold);
  padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;box-shadow:0 6px 16px rgba(0,0,0,.2);opacity:0;pointer-events:none;transition:.4s}
.music-tip::after{content:"";position:absolute;right:-6px;top:50%;width:10px;height:10px;background:var(--paper);border:1px solid var(--gold);border-left:0;border-bottom:0;transform:translateY(-50%) rotate(45deg)}
.music-tip.show{opacity:1;transform:translate(0,-50%);animation:tipBounce 1.2s ease-in-out infinite}
@keyframes tipBounce{50%{transform:translate(-6px,-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============ DOT NAV ============ */
#dotnav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:200;display:flex;flex-direction:column;gap:14px}
#dotnav a{position:relative;width:10px;height:10px;transform:rotate(45deg);border:1px solid var(--gold-3);background:rgba(255,250,240,.6);transition:.3s}
#dotnav a.active{background:var(--red);border-color:var(--gold);transform:rotate(45deg) scale(1.35)}
#dotnav a::before{content:attr(data-label);position:absolute;right:18px;top:-6px;transform:rotate(-45deg);transform-origin:right top;white-space:nowrap;font-size:12px;
  background:var(--red);padding:2px 10px;border-radius:20px;opacity:0;transition:.3s;pointer-events:none;color:var(--gold-2)}
#dotnav a:hover::before{opacity:1}

/* ============ HERO ============ */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;text-align:center;padding:90px 20px 70px;color:var(--paper)}
.hero-bg{position:absolute;inset:-10% 0;background:url('https://images.unsplash.com/photo-1519741497674-611481863552?w=1800&q=80') center/cover,var(--red);animation:kenburns 22s ease-in-out infinite alternate;will-change:transform}
@keyframes kenburns{from{scale:1}to{scale:1.15}}
.hero-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(168,32,30,.45),rgba(134,24,21,.82) 80%)}
.hero-content{position:relative;z-index:2;max-width:920px}
.hero-hy{width:clamp(64px,10vw,88px);height:clamp(64px,10vw,88px);color:var(--gold-2);filter:drop-shadow(0 0 16px rgba(243,220,160,.6));margin-bottom:8px}
.hero-hy.in{animation:hySpin 1.4s var(--ease),glowHy 2.4s 1.4s ease-in-out infinite}
@keyframes hySpin{from{transform:rotateY(540deg) scale(.3)}}
@keyframes glowHy{50%{filter:drop-shadow(0 0 26px rgba(243,220,160,.95))}}
.eyebrow{letter-spacing:6px;text-transform:uppercase;font-size:13px;color:var(--gold-2)}
.hero-names{font-family:var(--script);font-weight:400;font-size:clamp(56px,12vw,128px);line-height:1.25;margin:8px 0 16px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 .25em}
.hero-names .amp{font-size:.6em;color:var(--gold-2);animation:heartbeat 1.6s infinite}
@keyframes heartbeat{0%,100%{transform:scale(1)}15%{transform:scale(1.2)}30%{transform:scale(1)}45%{transform:scale(1.12)}}
.split .ch{display:inline-block;padding:.18em .22em .28em;margin:-.18em -.22em -.28em;opacity:0;transform:translateY(60px) rotate(12deg);filter:blur(8px);
  background:linear-gradient(180deg,#fffaf0,var(--gold-2) 55%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;transition:all .9s var(--ease)}
.split.in .ch{opacity:1;transform:none;filter:none}
.hero-date{display:inline-flex;align-items:center;gap:18px;font-family:var(--serif);color:var(--gold-2)}
.hero-date span{border-top:1px solid var(--gold-2);border-bottom:1px solid var(--gold-2);padding:4px 10px;font-size:13px;letter-spacing:2px;text-transform:uppercase}
.hero-date b{font-size:58px;font-weight:600;color:#fff;line-height:1}
.hero-lunar{margin-top:10px;font-family:var(--serif);font-style:italic;color:#fbe3d6}
.typewriter{min-height:1.7em;margin:16px 0 6px;font-family:var(--serif);font-style:italic;font-size:clamp(16px,2.4vw,20px);color:#fff4ea}
.typewriter::after{content:"|";margin-left:2px;animation:blink 1s steps(1) infinite;color:var(--gold-2)}
@keyframes blink{50%{opacity:0}}
.scroll-down{display:inline-block;margin-top:34px;width:26px;height:42px;border:1.5px solid var(--gold-2);border-radius:14px;position:relative}
.scroll-down span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold-2);animation:wheel 1.6s infinite}
@keyframes wheel{to{transform:translateY(14px);opacity:0}}
.sky-lanterns{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.sky-lanterns i{position:absolute;bottom:-60px;width:var(--s);height:calc(var(--s) * 1.3);border-radius:40% 40% 20% 20%;
  background:radial-gradient(ellipse at 50% 70%,#fff2b0,#ffb347 45%,#e0612f 80%);box-shadow:0 0 18px 6px rgba(255,170,70,.45);
  animation:rise var(--t) linear infinite,flicker 1.2s ease-in-out infinite alternate;opacity:0}
@keyframes rise{0%{transform:translate(0,0);opacity:0}10%{opacity:.95}85%{opacity:.8}100%{transform:translate(var(--x),-115vh);opacity:0}}
@keyframes flicker{to{filter:brightness(1.25)}}

/* ============ MARQUEE ============ */
.marquee{overflow:hidden;padding:14px 0;background:linear-gradient(90deg,var(--gold-3),var(--gold),var(--gold-2),var(--gold),var(--gold-3));color:var(--red-d)}
.marquee-track{display:flex;gap:26px;width:max-content;animation:marquee 34s linear infinite;align-items:center}
.marquee span{font-family:var(--serif);font-weight:600;font-size:clamp(17px,2.8vw,24px);letter-spacing:2px;text-transform:uppercase}
.marquee i{font-style:normal;color:var(--red);font-size:clamp(18px,2.6vw,24px);display:inline-block;animation:spin 6s linear infinite}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ============ QUOTE ============ */
.quote-sec{text-align:center;padding:80px 20px 10px}
.ornament{width:min(320px,80%);height:50px;margin:0 auto -38px;fill:none;stroke:var(--gold-3);stroke-width:1.4;display:block}
.ornament path{stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 2.5s var(--ease)}
.ornament.in path{stroke-dashoffset:0}
.quote-star{display:block;width:max-content;margin:0 auto 18px;font-size:34px;line-height:1;color:var(--red)}
.quote-star.in{animation:twinkleStar 3s ease-in-out infinite}
@keyframes twinkleStar{50%{transform:scale(1.25) rotate(45deg);text-shadow:0 0 12px rgba(168,32,30,.4)}}
blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(22px,3.4vw,32px);max-width:780px;margin:auto;color:var(--red);line-height:1.5}
cite{display:block;margin-top:12px;font-size:14px;letter-spacing:2px;color:var(--gold-3);font-style:normal;font-family:var(--sans)}

/* ============ SECTIONS ============ */
.section{position:relative;padding:clamp(70px,10vw,110px) clamp(16px,4vw,40px);max-width:1200px;margin:auto}
.sec-head{text-align:center;margin-bottom:clamp(36px,6vw,60px)}
.sec-orn{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--orn);margin-bottom:4px}
.sec-orn i{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--orn))}
.sec-orn i:last-child{transform:scaleX(-1)}
.sec-orn b{font-size:26px;line-height:1;color:var(--red);font-weight:400}
.band.red .sec-orn b{color:var(--gold-2)}
.sec-orn.in b{animation:twinkleStar 3s ease-in-out infinite}
.sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(32px,5.5vw,52px);letter-spacing:1px;color:var(--h)}
.sec-head h2::after{content:"";display:block;width:120px;height:10px;margin:12px auto 0;
  background:radial-gradient(circle,var(--line) 0 4px,transparent 5px) center/14px 10px no-repeat,linear-gradient(90deg,transparent,var(--line),transparent) center/100% 1px no-repeat}
.sec-head .sub{color:var(--mut);margin-top:10px}

/* ============ REVEAL ============ */
.reveal,.reveal-left,.reveal-right,.reveal-up,.reveal-zoom{opacity:0;transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s}
.reveal{transform:translateY(30px);filter:blur(6px)}
.reveal-left{transform:translateX(-80px) rotate(-3deg)}
.reveal-right{transform:translateX(80px) rotate(3deg)}
.reveal-up{transform:translateY(80px)}
.reveal-zoom{transform:scale(.6)}
.in.reveal,.in.reveal-left,.in.reveal-right,.in.reveal-up,.in.reveal-zoom{opacity:1;transform:none;filter:none}

/* ============ COUPLE ============ */
.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(20px,4vw,50px)}
.person{text-align:center}
.flip-card{width:min(100%,320px);aspect-ratio:3/4;margin:0 auto 24px;perspective:1200px;cursor:pointer}
.flip-inner{position:relative;width:100%;height:100%;transition:transform 1s var(--ease);transform-style:preserve-3d}
.flip-card.flipped .flip-inner{transform:rotateY(180deg)}
.flip-front,.flip-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:160px 160px 14px 14px}
.flip-back{transform:rotateY(180deg);display:flex;flex-direction:column;justify-content:center;gap:16px;padding:40px;color:var(--paper);
  background:radial-gradient(circle,var(--red-l),var(--red-d));border:3px double var(--gold);font-family:var(--serif);font-style:italic;font-size:clamp(16px,2vw,19px)}
.flip-back small{font-family:var(--sans);font-style:normal;font-size:11px;letter-spacing:2px;color:var(--gold-2);text-transform:uppercase}
.arch{width:100%;height:100%;border-radius:160px 160px 14px 14px;overflow:hidden;position:relative;background:linear-gradient(135deg,var(--red),var(--red-d));
  box-shadow:0 0 0 5px var(--paper),0 0 0 7px var(--gold),0 22px 50px rgba(74,28,20,.35)}
.arch::before{content:"";position:absolute;inset:10px;border-radius:150px 150px 8px 8px;border:1px solid rgba(255,250,240,.85);z-index:2;pointer-events:none}
.arch img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.person:hover .arch img{transform:scale(1.08)}
.arch::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);transform:translateX(-120%);transition:transform 1.2s}
.person:hover .arch::after{transform:translateX(120%)}
.role{font-size:12px;letter-spacing:4px;text-transform:uppercase;color:var(--gold-3);font-weight:500}
.person h3{font-family:var(--script);font-weight:400;font-size:clamp(38px,5vw,50px);color:var(--red);line-height:1.3}
.parents{color:var(--mut);font-size:14px}
.couple-center{display:flex;justify-content:center;align-items:center}
.couple-center .beat{position:relative;width:clamp(56px,6.5vw,76px);height:clamp(51px,6vw,70px)}
.couple-center svg{position:absolute;inset:0;width:100%;height:100%}
.couple-center .core{color:#d62828;filter:drop-shadow(0 6px 14px rgba(214,40,40,.45));animation:heartbeat 1.4s infinite}
.couple-center .hr{color:#d62828;opacity:0;animation:heartRipple 2.8s ease-out infinite}
.couple-center .hr.r2{animation-delay:.93s}.couple-center .hr.r3{animation-delay:1.86s}
@keyframes heartRipple{0%{transform:scale(1);opacity:.75}100%{transform:scale(2.3);opacity:0}}
.hint-tap{text-align:center;color:var(--mut);font-size:12px;letter-spacing:2px;margin-top:30px}
.tilt{transform-style:preserve-3d;transition:transform .3s}

/* ============ EVENTS ============ */
.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.event-card{position:relative;text-align:center;padding:0 24px 30px;border-radius:14px;background:var(--paper);color:var(--ink);
  box-shadow:0 20px 50px rgba(60,5,5,.35);overflow:hidden;isolation:isolate}
.event-card::before{content:"";position:absolute;inset:-50%;z-index:-2;background:conic-gradient(from var(--a,0deg),transparent 70%,var(--gold) 85%,transparent);animation:rot 5s linear infinite;opacity:0;transition:opacity .4s}
.event-card::after{content:"";position:absolute;inset:3px;border-radius:12px;background:linear-gradient(170deg,var(--paper),var(--beige));z-index:-1}
.event-card:hover::before{opacity:1}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes rot{to{--a:360deg}}
.ev-band{margin:3px -21px 22px;height:86px;display:grid;place-items:center; background:linear-gradient(var(--beige-2),var(--beige)); border-bottom:1px solid var(--gold);border-radius:11px 11px 0 0}
.ev-band svg{width:54px;height:50px;color:var(--red);transition:transform .6s var(--ease)}
.event-card:hover .ev-band svg{transform:scale(1.2) rotate(-6deg)}
.event-card h3{font-family:var(--serif);font-size:28px;font-weight:600;color:var(--red)}
.ev-time{margin:8px 0 2px}
.ev-time b{font-family:var(--serif);font-size:28px;color:var(--red-d)}
.ev-lunar{font-size:13px;color:#8a5a48;font-style:italic}
.ev-place{margin:14px 0 20px;font-size:15px}
.ev-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.btn-line{display:inline-block;padding:9px 20px;border:1px solid var(--red);border-radius:40px;font-size:13px;letter-spacing:1px;color:var(--red);position:relative;overflow:hidden;transition:color .4s;z-index:0}
.btn-line::before{content:"";position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease);z-index:-1}
.btn-line:hover{color:var(--gold-2)}
.btn-line:hover::before{transform:scaleX(1);transform-origin:left}
.map-wrap{margin:40px auto 0;border-radius:14px;overflow:hidden;border:3px solid var(--gold);height:340px;box-shadow:0 20px 50px rgba(60,5,5,.35)}
.map-wrap iframe{width:100%;height:100%;border:0}

/* ============ SAVE THE DATE ============ */
.countdown{display:flex;justify-content:center;gap:clamp(8px,2.5vw,22px);margin-bottom:36px}
.cd{text-align:center}
.cd span{display:block;margin-top:8px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--red);font-weight:500}
.flip{width:clamp(66px,16vw,92px);height:clamp(74px,18vw,100px);display:grid;place-items:center;border-radius:10px;font-family:var(--serif);font-weight:600;
  font-size:clamp(30px,7vw,46px);color:var(--gold-2);position:relative;background:linear-gradient(180deg,var(--red-l) 50%,var(--red) 50%);border:2px solid var(--gold);box-shadow:0 10px 24px rgba(134,24,21,.3)}
.flip::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.3)}
.flip::before{content:"";position:absolute;left:-5px;right:-5px;top:calc(50% - 3px);height:6px;
  background:radial-gradient(circle,var(--gold) 0 3px,transparent 4px) left/6px 6px no-repeat,radial-gradient(circle,var(--gold) 0 3px,transparent 4px) right/6px 6px no-repeat}
.flip.tick{animation:flipTick .5s var(--ease)}
@keyframes flipTick{0%{transform:perspective(300px) rotateX(0)}50%{transform:perspective(300px) rotateX(-90deg)}100%{transform:perspective(300px) rotateX(0)}}
.calendar{max-width:460px;margin:auto;padding:0 0 24px;border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 30px 60px rgba(74,28,20,.25);overflow:hidden;border:2px solid var(--gold)}
.cal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(var(--red-l),var(--red));color:var(--gold-2);margin-bottom:18px}
.cal-head svg{width:48px;height:48px;color:var(--gold-2);animation:clink 2.4s ease-in-out infinite}
@keyframes clink{0%,70%,100%{transform:rotate(0)}78%{transform:rotate(-10deg)}86%{transform:rotate(8deg)}}
.cal-head div{text-align:center;line-height:1.1}
.cal-head b{display:block;font-family:var(--serif);font-size:28px}
.cal-head span{letter-spacing:6px;font-size:13px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center;padding:0 22px}
.cal-grid .wd{font-size:12px;font-weight:600;color:var(--red);padding-bottom:6px}
.cal-grid .d{aspect-ratio:1;display:grid;place-items:center;border-radius:50%;font-family:var(--serif);font-size:17px}
.cal-grid .d:nth-child(7n){color:var(--red)}
.cal-grid .d.target{position:relative;color:#fff;font-weight:600;isolation:isolate}
.cal-grid .d.target::before{content:"";position:absolute;inset:-5px;z-index:-1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29'%3E%3Cpath fill='%23d62828' d='M23.6 0c-3.4 0-6.3 2.7-7.6 5.6C14.7 2.7 11.8 0 8.4 0 3.8 0 0 3.8 0 8.4c0 9.4 9.5 11.9 16 21.2 6.1-9.3 16-12.1 16-21.2C32 3.8 28.2 0 23.6 0z'/%3E%3C/svg%3E") center/contain no-repeat;animation:heartbeat 1.4s infinite}
.cal-grid .d.target .hr{position:absolute;inset:-5px;z-index:-2;opacity:0;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 -2 36 33'%3E%3Cpath fill='none' stroke='%23d62828' stroke-width='1.3' d='M23.6 0c-3.4 0-6.3 2.7-7.6 5.6C14.7 2.7 11.8 0 8.4 0 3.8 0 0 3.8 0 8.4c0 9.4 9.5 11.9 16 21.2 6.1-9.3 16-12.1 16-21.2C32 3.8 28.2 0 23.6 0z'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:heartRipple 2.4s ease-out infinite}
.cal-grid .d.target .hr.r2{animation-delay:1.2s}

/* ============ GALLERY ============ */
.filter-bar{display:flex;justify-content:center;gap:10px;margin-bottom:30px;flex-wrap:wrap}
.filter-bar button{padding:8px 22px;border-radius:30px;border:1px solid var(--gold);font-size:14px;transition:.3s;color:var(--gold-2)}
.filter-bar button.active,.filter-bar button:hover{background:var(--gold);color:var(--red-d)}
.masonry{columns:3 260px;column-gap:16px}
.m-item{break-inside:avoid;margin-bottom:16px;border-radius:8px;overflow:hidden;position:relative;cursor:zoom-in;border:3px solid var(--paper);box-shadow:0 12px 30px rgba(60,5,5,.35);
  background:linear-gradient(135deg,var(--red),var(--red-d));transition:opacity .5s,transform .5s var(--ease)}
.m-item.hide{display:none}
.m-item img{width:100%;transition:transform 1s var(--ease)}
.m-item:hover img{transform:scale(1.1) rotate(1deg)}
.m-item::after{content:"";position:absolute;inset:0;opacity:0;transition:.4s;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 29'%3E%3Cpath fill='%23ffffff' d='M23.6 0c-3.4 0-6.3 2.7-7.6 5.6C14.7 2.7 11.8 0 8.4 0 3.8 0 0 3.8 0 8.4c0 9.4 9.5 11.9 16 21.2 6.1-9.3 16-12.1 16-21.2C32 3.8 28.2 0 23.6 0z'/%3E%3C/svg%3E") center/54px no-repeat,radial-gradient(circle,rgba(168,32,30,.25),rgba(134,24,21,.65))}
.m-item:hover::after{opacity:1;animation:heartPop .8s var(--ease)}
@keyframes heartPop{0%{background-size:0,auto}60%{background-size:70px,auto}100%{background-size:54px,auto}}
.pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:26px;flex-wrap:wrap}
.pager:empty{display:none}
.pager button{min-width:42px;height:42px;padding:0 10px;border-radius:21px;border:1px solid var(--gold);color:var(--gold-2);font-weight:500;transition:.3s;display:grid;place-items:center}
.pager button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pager button:hover:not(:disabled),.pager button.active{background:var(--gold);color:var(--red-d)}
.pager button:disabled{opacity:.35;cursor:default}
.pager button.nav:hover:not(:disabled) svg{animation:nudgeR .6s ease-in-out infinite}
.pager button.prev:hover:not(:disabled) svg{animation-name:nudgeL}
@keyframes nudgeL{50%{transform:translateX(-4px)}}
@keyframes nudgeR{50%{transform:translateX(4px)}}
.masonry{transition:opacity .28s ease,transform .28s ease}
.masonry.out{opacity:0;transform:translateY(10px) scale(.99)}
.masonry.swap .m-item{animation:pageItem .55s var(--ease) both}
.masonry.swap .m-item:nth-child(3n+2){animation-delay:.06s}.masonry.swap .m-item:nth-child(3n){animation-delay:.12s}
@keyframes pageItem{from{opacity:0;transform:translateY(18px) scale(.97)}}
#lightbox{position:fixed;inset:0;z-index:800;background:rgba(40,6,6,.94);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.4s}
#lightbox.open{opacity:1;visibility:visible}
#lightbox img{max-width:92vw;max-height:84vh;border:4px solid var(--paper);transform:scale(.85);transition:transform .5s var(--ease),opacity .3s}
#lightbox.open img{transform:scale(1)}
#lightbox button{position:absolute;font-size:40px;color:var(--gold-2);width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.08)}
.lb-close{top:18px;right:18px}.lb-prev{left:14px;top:50%;transform:translateY(-50%)}.lb-next{right:14px;top:50%;transform:translateY(-50%)}
.lb-count{position:absolute;bottom:20px;letter-spacing:3px;font-size:13px;color:var(--gold-2)}

/* ============ RSVP ============ */
.rsvp-form{position:relative;max-width:660px;margin:auto;padding:clamp(26px,5vw,44px);display:grid;gap:14px;background:var(--paper);border-radius:14px;
  border:1px solid var(--gold);box-shadow:0 24px 60px rgba(74,28,20,.18)}
.rsvp-form::before{content:"";position:absolute;inset:8px;border:1px solid rgba(169,124,47,.35);border-radius:10px;pointer-events:none}
.attend-group{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative}
.attend-opt{cursor:pointer;position:relative}
.attend-opt input{position:absolute;opacity:0;pointer-events:none}
.attend-opt span{height:100%;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;padding:18px 10px;border-radius:12px;border:2px solid rgba(168,32,30,.3);
  background:#fff;transition:.35s var(--ease)}
.attend-opt i{font-style:normal;font-size:26px;transition:transform .4s var(--ease)}
.attend-opt b{font-weight:600;color:var(--red)}
.attend-opt small{font-size:12px;color:#8a5a48}
.attend-opt:hover span{transform:translateY(-3px);box-shadow:0 10px 20px rgba(168,32,30,.15)}
.attend-opt input:checked+span{background:linear-gradient(135deg,var(--red-l),var(--red-d));border-color:var(--gold);box-shadow:0 10px 24px rgba(168,32,30,.35)}
.attend-opt input:checked+span b{color:var(--gold-2)}
.attend-opt input:checked+span small{color:#fbe3d6}
.attend-opt input:checked+span i{transform:scale(1.3) rotate(-10deg)}
.attend-opt input:focus-visible+span{outline:2px solid var(--gold-3);outline-offset:3px}
.choose-hint{text-align:center;font-size:13px;color:#8a5a48;font-style:italic;transition:.4s}
.choose-hint.hide{opacity:0;height:0;margin-top:-14px;overflow:hidden}
.rsvp-fields{display:grid;gap:18px;overflow:hidden;max-height:1200px;transition:max-height .9s var(--ease),opacity .6s .15s;padding-top:6px}
.rsvp-fields.ovf,.attend-only.ovf{overflow:visible}
.rsvp-fields.collapsed{max-height:0;opacity:0;padding-top:0;transition:max-height .5s var(--ease),opacity .3s}
.rsvp-fields>*{transition:transform .6s var(--ease),opacity .6s}
.rsvp-fields.collapsed>*{transform:translateY(20px);opacity:0}
.attend-only{display:grid;gap:18px;overflow:hidden;transition:max-height .7s var(--ease),opacity .5s,margin .5s;max-height:600px}
.attend-only.hidden{max-height:0;opacity:0;margin-bottom:-18px}
.field{position:relative}
.field input,.field textarea,.field select{width:100%;padding:22px 16px 9px;border-radius:10px;border:1px solid rgba(168,32,30,.3);background:#fff;color:var(--ink);font:inherit;outline:none;
  transition:border-color .3s,box-shadow .3s;appearance:none;-webkit-appearance:none}
.field select{cursor:pointer}
.field.select::after{content:"▾";position:absolute;right:16px;top:27px;transform:translateY(-50%);color:var(--red);pointer-events:none}
.field textarea{resize:vertical;min-height:58px;height:110px;line-height:1.5}
.field label{position:absolute;left:16px;top:16px;color:#9a7466;pointer-events:none;transition:.25s var(--ease);font-size:15px}
.field label em{color:var(--red);font-style:normal}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--red);box-shadow:0 0 0 4px rgba(168,32,30,.12)}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label,
.field select:focus+label,.field select:valid+label{top:5px;font-size:11px;letter-spacing:1px;color:var(--red)}
.field.error input,.field.error select{border-color:#d33;animation:shake .4s}
.err{color:#c22;font-size:12.5px;margin-top:4px;font-weight:500}
.err:empty{display:none}
.attend-group.error .attend-opt span{border-color:#d33;animation:shake .4s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
/* dropdown tùy biến */
.field.select select{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;padding:0;border:0}
.field.select::after{display:none}
.dd-btn{width:100%;text-align:left;padding:22px 44px 9px 16px;height:58px;border-radius:10px;border:1px solid rgba(168,32,30,.3);background:#fff;color:var(--ink);
  transition:border-color .3s,box-shadow .3s;position:relative}
.dd-btn .dd-val{display:block;min-height:1.5em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd-btn::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
.dd.open .dd-btn,.dd-btn:focus-visible{border-color:var(--red);box-shadow:0 0 0 4px rgba(168,32,30,.12);outline:none}
.dd.open .dd-btn::after{transform:translateY(-30%) rotate(-135deg)}
.field.select.has-value label,.field.select.focus label{top:5px;font-size:11px;letter-spacing:1px;color:var(--red)}
.dd{position:relative}
.dd-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:30;list-style:none;padding:6px;border-radius:12px;background:var(--paper);border:1px solid var(--gold);
  box-shadow:0 18px 40px rgba(74,28,20,.25);transform-origin:top;transform:scaleY(.6) translateY(-8px);opacity:0;visibility:hidden;transition:transform .3s var(--ease),opacity .25s,visibility .3s;max-height:280px;overflow:auto}
.dd.open .dd-list{transform:none;opacity:1;visibility:visible}
.dd-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .2s,color .2s,padding .2s}
.dd-list li::before{content:"✦";color:var(--gold);font-size:12px;opacity:.5;transition:.2s}
.dd-list li:hover,.dd-list li.hl{background:rgba(168,32,30,.08);padding-left:16px}
.dd-list li.sel{background:linear-gradient(135deg,var(--red-l),var(--red));color:var(--gold-2);font-weight:500}
.dd-list li.sel::before{content:"♥";color:var(--gold-2);opacity:1}
.dd.open .dd-list li{animation:ddItem .35s var(--ease) both}
.dd.open .dd-list li:nth-child(2){animation-delay:.04s}.dd.open .dd-list li:nth-child(3){animation-delay:.08s}.dd.open .dd-list li:nth-child(4){animation-delay:.12s}.dd.open .dd-list li:nth-child(5){animation-delay:.16s}.dd.open .dd-list li:nth-child(6){animation-delay:.2s}
@keyframes ddItem{from{opacity:0;transform:translateX(-10px)}}
.field.error .dd-btn{border-color:#d33;animation:shake .4s}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.btn-red{position:relative;overflow:hidden;padding:16px 30px;border-radius:40px;font-weight:600;letter-spacing:2px;text-transform:uppercase;font-size:14px;color:var(--gold-2);
  background:linear-gradient(135deg,var(--red-l),var(--red-d));border:2px solid var(--gold);box-shadow:0 10px 30px rgba(168,32,30,.3);transition:transform .2s}
.btn-red::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,235,180,.5),transparent);transform:skewX(-20deg);animation:sweep 3s infinite}
@keyframes sweep{to{left:130%}}
.btn-red span{position:relative;z-index:1;pointer-events:none}
.btn-red:disabled{opacity:.7;cursor:wait}
.rsvp-done{text-align:center;padding:10px 0}
.rsvp-done svg{width:64px;height:58px;color:#d62828;animation:heartbeat 1.4s infinite}
.rsvp-done h3{font-family:var(--serif);color:var(--red);font-size:28px;margin:8px 0}

/* ============ GIFT BOX ============ */
.gift{text-align:center}
.gift-box{width:170px;margin:auto;cursor:pointer;position:relative;padding-top:34px;outline:none}
.gb-body{height:118px;border-radius:0 0 10px 10px;position:relative;
  background:linear-gradient(90deg,transparent 42%,var(--gold) 42% 58%,transparent 58%),linear-gradient(135deg,var(--paper),var(--beige-2));box-shadow:0 18px 30px rgba(60,5,5,.35)}
.gb-lid{height:36px;margin:0 -10px;border-radius:8px;position:relative;z-index:2;transition:transform .9s var(--ease);
  background:linear-gradient(90deg,transparent 42%,var(--gold-2) 42% 58%,transparent 58%),linear-gradient(135deg,#fff,var(--beige));box-shadow:0 4px 10px rgba(0,0,0,.2)}
.gb-bow{position:absolute;left:50%;top:-28px;width:64px;height:32px;transform:translateX(-50%)}
.gb-bow::before,.gb-bow::after{content:"";position:absolute;top:0;width:32px;height:30px;border:6px solid var(--gold);border-radius:50% 50% 0 50%}
.gb-bow::before{left:0;transform:rotate(-20deg)}
.gb-bow::after{right:0;transform:rotate(20deg) scaleX(-1)}
.gift-box p{margin-top:16px;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--gold-2);animation:pulseTxt 2s infinite}
@keyframes pulseTxt{50%{opacity:.4}}
.gift-box:not(.opened){animation:wiggle 2.4s infinite}
@keyframes wiggle{0%,80%,100%{transform:rotate(0)}84%{transform:rotate(-6deg)}88%{transform:rotate(6deg)}92%{transform:rotate(-4deg)}96%{transform:rotate(4deg)}}
.gift-box.opened .gb-lid{transform:translate(80px,-24px) rotate(32deg)}
.gift-box.opened p{opacity:0;animation:none}
.gift-cards{display:grid;grid-template-columns:repeat(2,minmax(0,310px));justify-content:center;gap:26px;max-height:0;overflow:hidden;opacity:0;transition:max-height 1.2s var(--ease),opacity 1s,margin 1s}
.gift-cards.show{max-height:1400px;opacity:1;margin-top:34px}
.gift-cards.show .bank-card{animation:cardIn .9s var(--ease) both}
.gift-cards.show .bank-card:nth-child(2){animation-delay:.2s}
@keyframes cardIn{from{transform:translateY(60px) rotate(-4deg);opacity:0}}
.bank-card{position:relative;padding:26px 22px;border-radius:16px;background:linear-gradient(160deg,var(--paper),var(--beige));color:var(--ink);border:2px solid var(--gold);
  box-shadow:0 20px 40px rgba(60,5,5,.35)}
.bc-to{font-family:var(--script);font-size:32px;color:var(--red);margin-bottom:10px;line-height:1.2}
.bank-card img{width:170px;height:170px;margin:0 auto 12px;background:#fff;padding:8px;border-radius:10px;border:1px solid var(--gold)}
.bc-bank{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#8a5a48}
.bc-num{font-family:var(--serif);font-size:24px;font-weight:600;letter-spacing:2px;color:var(--red)}
.bc-name{font-size:12.5px;letter-spacing:2px;margin-bottom:12px}

/* ============ THANK YOU full màn hình ============ */
.thanks{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;text-align:center;padding:80px 20px;color:var(--paper);isolation:isolate}
.thanks-bg{position:absolute;inset:-15% 0;z-index:-3;background:url('https://images.unsplash.com/photo-1511285560929-80b456fea0bc?w=1800&q=80') center/cover,var(--red)}
.thanks-overlay{position:absolute;inset:0;z-index:-2;background:radial-gradient(ellipse at center,rgba(168,32,30,.5),rgba(110,18,16,.9) 85%)}
.thanks-inner{max-width:760px}
.thanks-lotus{width:90px;height:72px;color:var(--gold-2);animation:bloom 3s ease-in-out infinite}
.thanks-script{font-family:var(--script);font-size:clamp(72px,15vw,150px);line-height:1.2;color:var(--gold-2);text-shadow:0 4px 30px rgba(0,0,0,.25)}
.thanks-msg{font-family:var(--serif);font-style:italic;font-size:clamp(18px,2.6vw,24px);margin:6px 0 30px}
.thanks-names{display:flex;align-items:center;justify-content:center;gap:18px;font-family:var(--script);font-size:clamp(34px,6vw,54px);color:var(--gold-2)}
.thanks-names svg{width:36px;height:33px;color:#ff4d4d;filter:drop-shadow(0 0 10px rgba(255,77,77,.6));animation:heartbeat 1.4s infinite}
.thanks-date{letter-spacing:8px;margin:14px 0 40px;color:var(--gold-2)}
.thanks small{color:#f6d6c6;font-size:12px;letter-spacing:2px}

/* ============ TOAST / TOP ============ */
#toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,140px);z-index:990;padding:12px 24px;border-radius:30px;background:var(--paper);color:var(--red-d);border:2px solid var(--gold);
  font-weight:500;font-size:14px;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:transform .5s var(--ease);max-width:90vw;text-align:center}
#toast.show{transform:translate(-50%,0)}
#toTop{position:fixed;left:18px;bottom:18px;z-index:300;width:46px;height:46px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-2);
  background:var(--red);font-size:20px;opacity:0;transform:translateY(20px);transition:.4s;pointer-events:none;box-shadow:0 6px 16px rgba(0,0,0,.25)}
#toTop.show{opacity:1;transform:none;pointer-events:auto}
#toTop:hover{background:var(--gold);color:var(--red-d)}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .event-grid{grid-template-columns:1fr;max-width:520px;margin:auto}
  #dotnav{display:none}
}
@media (max-width:760px){
  .couple-grid{grid-template-columns:1fr;gap:30px}
  .flip-card{width:min(78vw,300px)}
  .reveal-left,.reveal-right{transform:translateY(60px)}
  .field-row{grid-template-columns:1fr}
  .attend-opt span{padding:14px 6px}
  .attend-opt b{font-size:14px}
  .hero-date{gap:10px}
  .hero-date span{font-size:11px;padding:3px 6px;letter-spacing:1px}
  .hero-date b{font-size:44px}
  .map-wrap{height:260px}
  .gift-cards{grid-template-columns:minmax(0,330px)}
  .music-tip{font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
.masonry,.pager{overflow-anchor:none}