:root{--gng-plum: #4a2545;--gng-plum-2: #6b3a64;--gng-rose: #c4476f;--gng-rose-dark: #a1355a;--gng-sage: #4f7a55;--gng-sage-soft: #e6f0e4;--gng-paper: #fffaf6;--gng-card: #ffffff;--gng-line: #eedfdc;--gng-soft: #f8eeec;--gng-text: #2b1d29;--gng-muted: #6e5d69;--gng-gold: #d79b2b;--gng-radius: 14px;--gng-shadow: 0 10px 30px rgba(74, 37, 69, 0.10);--primary: #6b3a64;--primary-dark: #4a2545;--border: #eedfdc;--surface: #ffffff;--shadow-soft: 0 10px 30px rgba(74, 37, 69, 0.10);--surface-muted: #f8eeec;--text-main: #2b1d29;--text-muted: #6e5d69;}
.gng-tool [hidden]{display: none !important;}
.gng-tool{background: var(--gng-paper);border: 1px solid var(--gng-line);border-radius: var(--gng-radius);padding: 1.25rem;margin: 1.5rem 0 3rem;box-shadow: var(--gng-shadow);}
.gng-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.3rem 1rem;font-size: 0.82rem;color: var(--gng-muted);padding-bottom: 0.85rem;margin-bottom: 1rem;border-bottom: 1px dashed var(--gng-line);}
.gng-byline-author a,.gng-byline .author-link{color: var(--gng-rose-dark);text-decoration: underline;text-underline-offset: 2px;}
.gng-filters{display: flex;flex-wrap: wrap;align-items: flex-end;gap: 1rem 1.25rem;}
.gng-field{border: 0;padding: 0;margin: 0;min-width: 0;}
.gng-field-wide{flex: 1 1 380px;}
.gng-field label,.gng-field legend{display: block;font-size: 0.75rem;font-weight: 700;letter-spacing: 0.07em;text-transform: uppercase;color: var(--gng-plum-2);margin-bottom: 0.4rem;float: none;width: auto;padding: 0;}
.gng-field select{min-width: 200px;background: #fff;color: var(--gng-text);border: 1px solid var(--gng-line);border-radius: 10px;padding: 0.55rem 0.7rem;font-size: 0.95rem;}
.gng-field select:focus{outline: 2px solid var(--gng-rose);outline-offset: 1px;}
.gng-chips{display: flex;flex-wrap: wrap;gap: 0.4rem;}
.gng-chips label{margin: 0;text-transform: none;letter-spacing: 0;font-size: 0.9rem;font-weight: 600;color: var(--gng-text);}
.gng-chips input{position: absolute;opacity: 0;pointer-events: none;}
.gng-chips span{display: inline-block;padding: 0.42rem 0.85rem;background: #fff;border: 1px solid var(--gng-line);border-radius: 999px;cursor: pointer;transition: background 0.15s, border-color 0.15s, color 0.15s;}
.gng-chips span:hover{border-color: var(--gng-rose);}
.gng-chips input:checked + span{background: var(--gng-plum);border-color: var(--gng-plum);color: #fff;}
.gng-chips input:focus-visible + span{outline: 2px solid var(--gng-rose);outline-offset: 2px;}
.gng-switch{display: inline-flex;align-items: center;gap: 0.55rem;font-size: 0.92rem;font-weight: 600;color: var(--gng-text);cursor: pointer;margin: 0 0 0.45rem;}
.gng-switch input{position: absolute;opacity: 0;pointer-events: none;}
.gng-switch-track{width: 2.4rem;height: 1.35rem;border-radius: 999px;background: #d9c9cf;position: relative;transition: background 0.15s;flex-shrink: 0;}
.gng-switch-track::after{content: "";position: absolute;top: 0.17rem;left: 0.17rem;width: 1rem;height: 1rem;border-radius: 50%;background: #fff;transition: transform 0.15s;}
.gng-switch input:checked + .gng-switch-track{background: var(--gng-rose);}
.gng-switch input:checked + .gng-switch-track::after{transform: translateX(1.05rem);}
.gng-switch input:focus-visible + .gng-switch-track{outline: 2px solid var(--gng-plum);outline-offset: 2px;}
.gng-deal{margin-left: auto;border: 0;border-radius: 10px;background: var(--gng-rose);color: #fff;font-weight: 700;font-size: 0.98rem;padding: 0.7rem 1.2rem;cursor: pointer;transition: background 0.15s;}
.gng-deal:hover{background: var(--gng-rose-dark);}
.gng-deal:disabled{opacity: 0.7;cursor: wait;}
.gng-status{font-size: 0.87rem;color: var(--gng-muted);margin: 0.9rem 0 1.1rem;}
.gng-status.is-error{color: #b3261e;font-weight: 600;}
.gng-table{display: grid;grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);gap: 1.5rem;align-items: start;}
.gng-deck{min-width: 0;}
.gng-pos{text-align: center;font-size: 0.8rem;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--gng-muted);margin: 0 0 0.5rem;}
.gng-card{position: relative;background: var(--gng-card);border: 1px solid var(--gng-line);border-radius: 18px;padding: 2rem 1.5rem 1.6rem;text-align: center;min-height: 290px;display: flex;flex-direction: column;align-items: center;justify-content: center;box-shadow: 0 2px 0 var(--gng-line), 0 6px 0 -2px #fff, 0 7px 0 -1px var(--gng-line), 0 12px 0 -4px #fff, 0 13px 0 -3px var(--gng-line);transition: border-color 0.2s;}
.gng-card.is-kept{border-color: var(--gng-sage);}
.gng-card.is-kept::after{content: "Kept";position: absolute;top: 0.8rem;right: 0.9rem;font-size: 0.72rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.08em;color: var(--gng-sage);background: var(--gng-sage-soft);border-radius: 999px;padding: 0.2rem 0.6rem;}
.gng-card.is-flip{animation: gng-in 0.28s ease-out;}
@keyframes gng-in{from{opacity: 0.2;transform: translateY(8px) scale(0.98);}to{opacity: 1;transform: none;}}
.gng-tags{display: flex;gap: 0.4rem;justify-content: center;flex-wrap: wrap;margin: 0 0 0.8rem;}
.gng-tags span{font-size: 0.75rem;font-weight: 700;letter-spacing: 0.05em;text-transform: uppercase;color: var(--gng-plum-2);background: var(--gng-soft);border-radius: 999px;padding: 0.22rem 0.7rem;}
.gng-name{font-family: Georgia, "Times New Roman", serif;font-size: clamp(2.3rem, 6vw, 3.4rem);line-height: 1.1;font-weight: 700;color: var(--gng-plum);margin: 0;word-break: break-word;}
.gng-say{font-size: 0.9rem;color: var(--gng-rose-dark);font-weight: 600;margin: 0.35rem 0 0;}
.gng-meaning{font-size: 1.08rem;color: var(--gng-text);margin: 0.8rem 0 1.1rem;line-height: 1.5;}
.gng-nicks{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 0.4rem;}
.gng-nicks-label{font-size: 0.75rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.07em;color: var(--gng-muted);margin-right: 0.2rem;}
.gng-nicks ul{display: contents;list-style: none;margin: 0;padding: 0;}
.gng-nicks li{font-size: 0.9rem;font-weight: 600;color: var(--gng-plum);border: 1px dashed var(--gng-plum-2);border-radius: 8px;padding: 0.15rem 0.55rem;}
.gng-nicks-none{font-size: 0.88rem;color: var(--gng-muted);font-style: italic;}
.gng-done{font-size: 1.05rem;color: var(--gng-text);margin: 0;line-height: 1.55;}
.gng-moves{display: grid;grid-template-columns: auto 1fr 1fr;gap: 0.6rem;margin: 1.5rem 0 1rem;}
.gng-move{display: inline-flex;align-items: center;justify-content: center;gap: 0.45rem;border-radius: 12px;font-weight: 700;font-size: 1rem;padding: 0.8rem 1rem;cursor: pointer;border: 2px solid transparent;transition: background 0.15s, border-color 0.15s, color 0.15s;}
.gng-move kbd{font-family: inherit;font-size: 0.72rem;font-weight: 700;border-radius: 5px;padding: 0.05rem 0.4rem;background: rgba(255, 255, 255, 0.25);color: inherit;box-shadow: none;}
.gng-move:disabled{opacity: 0.45;cursor: not-allowed;}
.gng-back{background: #fff;border-color: var(--gng-line);color: var(--gng-muted);}
.gng-back:hover:not(:disabled){border-color: var(--gng-plum-2);color: var(--gng-plum);}
.gng-pass{background: #fff;border-color: #d9c9cf;color: var(--gng-plum);}
.gng-pass kbd{background: var(--gng-soft);}
.gng-pass:hover:not(:disabled){border-color: var(--gng-plum);}
.gng-keep-btn{background: var(--gng-sage);color: #fff;}
.gng-keep-btn:hover:not(:disabled){background: #3e6344;}
.gng-move:focus-visible{outline: 3px solid var(--gng-rose);outline-offset: 2px;}
.gng-batch{display: flex;flex-wrap: wrap;justify-content: center;gap: 0.35rem;list-style: none;padding: 0;margin: 0;}
.gng-batch button{background: transparent;border: 1px solid var(--gng-line);border-radius: 999px;font-size: 0.82rem;color: var(--gng-muted);padding: 0.2rem 0.65rem;cursor: pointer;}
.gng-batch button:hover{border-color: var(--gng-plum-2);color: var(--gng-plum);}
.gng-batch button.is-kept{background: var(--gng-sage-soft);border-color: var(--gng-sage);color: var(--gng-sage);font-weight: 700;}
.gng-batch button.is-passed{text-decoration: line-through;opacity: 0.6;}
.gng-batch button.is-current{background: var(--gng-plum);border-color: var(--gng-plum);color: #fff;font-weight: 700;text-decoration: none;opacity: 1;}
.gng-kept{background: #fff;border: 1px solid var(--gng-line);border-radius: var(--gng-radius);padding: 1.1rem;position: sticky;top: 1rem;}
.gng-kept-title{display: flex;align-items: center;gap: 0.5rem;font-size: 1.05rem;font-weight: 700;color: var(--gng-plum);margin: 0 0 0.7rem;}
.gng-kept-title span{font-size: 0.8rem;background: var(--gng-sage);color: #fff;border-radius: 999px;padding: 0.1rem 0.55rem;}
.gng-kept-empty{font-size: 0.88rem;color: var(--gng-muted);margin: 0 0 0.8rem;}
.gng-kept-list{list-style: none;counter-reset: gk;padding: 0;margin: 0 0 0.9rem;max-height: 340px;overflow-y: auto;}
.gng-kept-list li{counter-increment: gk;display: flex;align-items: flex-start;gap: 0.55rem;padding: 0.5rem 0;border-bottom: 1px solid var(--gng-soft);}
.gng-kept-list li::before{content: counter(gk);font-size: 0.75rem;font-weight: 700;color: var(--gng-muted);min-width: 1.1rem;padding-top: 0.15rem;}
.gng-kept-list li:first-child::before{color: var(--gng-gold);}
.gng-kept-list div{flex: 1;min-width: 0;}
.gng-kept-list strong{display: block;color: var(--gng-text);}
.gng-kept-list span{display: block;font-size: 0.8rem;color: var(--gng-muted);line-height: 1.35;}
.gng-remove{background: none;border: 0;color: var(--gng-muted);padding: 0.15rem 0.3rem;cursor: pointer;border-radius: 6px;}
.gng-remove:hover{color: #b3261e;background: var(--gng-soft);}
.gng-kept-actions{display: flex;flex-wrap: wrap;gap: 0.4rem;}
.gng-ghost{display: inline-flex;align-items: center;gap: 0.35rem;background: #fff;border: 1px solid var(--gng-line);border-radius: 8px;color: var(--gng-plum);font-size: 0.85rem;font-weight: 600;padding: 0.4rem 0.7rem;cursor: pointer;transition: border-color 0.15s, background 0.15s;}
.gng-ghost:hover:not(:disabled){border-color: var(--gng-plum-2);}
.gng-ghost:disabled{opacity: 0.45;cursor: not-allowed;}
.gng-ghost.is-done{background: var(--gng-sage-soft);border-color: var(--gng-sage);color: var(--gng-sage);}
.gng-ko-start:not(:disabled){background: var(--gng-plum);border-color: var(--gng-plum);color: #fff;}
.gng-duel{margin-top: 1rem;padding: 1rem;border-radius: 12px;background: var(--gng-soft);text-align: center;}
.gng-duel-round{font-size: 0.75rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.08em;color: var(--gng-muted);margin: 0 0 0.3rem;}
.gng-duel-ask{font-weight: 700;color: var(--gng-plum);margin: 0 0 0.7rem;}
.gng-duel-pair{display: grid;grid-template-columns: 1fr auto 1fr;align-items: center;gap: 0.5rem;margin-bottom: 0.8rem;}
.gng-duel-pick{font-family: Georgia, "Times New Roman", serif;font-size: 1.15rem;font-weight: 700;color: var(--gng-plum);background: #fff;border: 2px solid var(--gng-line);border-radius: 10px;padding: 0.8rem 0.4rem;cursor: pointer;word-break: break-word;transition: border-color 0.15s, transform 0.1s;}
.gng-duel-pick:hover{border-color: var(--gng-rose);}
.gng-duel-pick:active{transform: scale(0.97);}
.gng-duel-pick:focus-visible{outline: 3px solid var(--gng-rose);outline-offset: 2px;}
.gng-duel-or{font-size: 0.8rem;color: var(--gng-muted);font-style: italic;}
.gng-duel-win{font-weight: 700;color: var(--gng-sage);margin: 0 0 0.8rem;}
.gng-read,.gng-limits{margin: 0 auto 2.5rem;color: var(--gng-text);line-height: 1.7;}
.gng-read h2,.gng-limits h2{font-size: 1.5rem;font-weight: 700;color: var(--gng-plum);margin: 0 0 0.8rem;}
.gng-read h3{font-size: 1.02rem;font-weight: 700;color: var(--gng-plum-2);margin: 0 0 0.4rem;}
.gng-notes{padding-left: 1.1rem;}
.gng-notes li{margin-bottom: 0.7rem;}
.gng-notes li::marker{color: var(--gng-rose);}
.gng-table-wrap{overflow-x: auto;margin: 1rem 0;}
.gng-grid-table{width: 100%;border-collapse: collapse;font-size: 0.93rem;}
.gng-grid-table caption{caption-side: top;font-size: 0.85rem;color: var(--gng-muted);padding: 0 0 0.5rem;}
.gng-grid-table th{background: var(--gng-plum);color: #fff;text-align: left;font-weight: 600;padding: 0.6rem 0.75rem;}
.gng-grid-table td{border-bottom: 1px solid var(--gng-line);padding: 0.6rem 0.75rem;vertical-align: top;}
.gng-grid-table td:first-child{font-family: Georgia, "Times New Roman", serif;font-weight: 700;color: var(--gng-plum);white-space: nowrap;}
.gng-grid-table tbody tr:nth-child(even){background: var(--gng-paper);}
.gng-bar{display: flex;height: 14px;border-radius: 999px;overflow: hidden;margin: 0.4rem 0 1.2rem;}
.gng-bar span{display: block;height: 100%;}
.gng-bar-classic{background: var(--gng-plum);}
.gng-bar-nature{background: var(--gng-sage);}
.gng-bar-virtue{background: var(--gng-gold);}
.gng-bar-legend{background: var(--gng-rose);}
.gng-bar-surname{background: #8a8fa8;}
.gng-themes{margin: 0 0 1rem;}
.gng-themes div{padding: 0.7rem 0;border-bottom: 1px solid var(--gng-line);}
.gng-themes dt{display: flex;align-items: center;gap: 0.5rem;font-weight: 700;color: var(--gng-plum);}
.gng-themes dd{margin: 0.25rem 0 0 1.25rem;}
.gng-dot{display: inline-block;width: 0.75rem;height: 0.75rem;border-radius: 50%;}
.gng-steps{counter-reset: gs;list-style: none;padding: 0;}
.gng-steps li{counter-increment: gs;position: relative;padding-left: 2.6rem;margin-bottom: 0.8rem;}
.gng-steps li::before{content: counter(gs);position: absolute;left: 0;top: 0.05rem;width: 1.8rem;height: 1.8rem;border-radius: 50%;background: var(--gng-soft);color: var(--gng-plum);font-weight: 700;font-size: 0.9rem;display: flex;align-items: center;justify-content: center;}
.gng-pairs{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 1rem;}
.gng-pair{border-left: 4px solid var(--gng-rose);background: var(--gng-paper);border-radius: 0 10px 10px 0;padding: 0.9rem 1rem;}
.gng-pair p{margin: 0;font-size: 0.95rem;}
.gng-limits{background: #fff;border: 1px solid var(--gng-line);border-top: 4px solid var(--gng-gold);border-radius: var(--gng-radius);padding: 1.4rem 1.5rem;}
.gng-limits ul{padding-left: 1.1rem;margin: 0;}
.gng-limits li{margin-bottom: 0.6rem;}
.gng-limits a,.gng-read a{color: var(--gng-rose-dark);}
@media (max-width: 991px){.gng-table{grid-template-columns: 1fr;}.gng-kept{position: static;}}
@media (max-width: 640px){.gng-tool{padding: 1rem;}.gng-deal{margin-left: 0;width: 100%;}.gng-field select{min-width: 0;width: 100%;}.gng-field{width: 100%;}.gng-card{padding: 1.6rem 1rem 1.3rem;min-height: 250px;}.gng-moves{grid-template-columns: 1fr 1fr;}.gng-back{grid-column: span 2;order: 3;}.gng-pairs{grid-template-columns: 1fr;}}