.FfeLinkModal-module__-gMDGW__overlay{z-index:300;background:#1e1d278c;justify-content:center;align-items:center;padding:1.5rem;animation:.15s FfeLinkModal-module__-gMDGW__fadeIn;display:flex;position:fixed;inset:0}@keyframes FfeLinkModal-module__-gMDGW__fadeIn{0%{opacity:0}to{opacity:1}}.FfeLinkModal-module__-gMDGW__modal{border:2px solid var(--ink);background:var(--cyan);border-radius:20px;width:100%;max-width:420px;padding:28px 24px;animation:.2s FfeLinkModal-module__-gMDGW__slideUp;box-shadow:0 8px 16px -6px #1e1d271f,0 24px 48px -20px #1e1d274d}@keyframes FfeLinkModal-module__-gMDGW__slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.FfeLinkModal-module__-gMDGW__header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.FfeLinkModal-module__-gMDGW__title{font-family:var(--font-title);text-transform:uppercase;letter-spacing:.04em;color:var(--ink);font-size:1.05rem;font-weight:900}.FfeLinkModal-module__-gMDGW__close{border:2px solid var(--ink);background:var(--cream);cursor:pointer;width:32px;height:32px;color:var(--ink);border-radius:99px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;line-height:1;transition:background .15s,color .15s;display:flex}.FfeLinkModal-module__-gMDGW__close:hover{background:var(--ink);color:var(--cream)}.FfeLinkModal-module__-gMDGW__field{margin-bottom:1rem}.FfeLinkModal-module__-gMDGW__label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);opacity:.65;margin-bottom:6px;font-size:.7rem;font-weight:700;display:block}.FfeLinkModal-module__-gMDGW__input{width:100%;font-family:var(--font-body);color:var(--ink);border:2px solid var(--ink);background:#fff;border-radius:10px;outline:none;padding:10px 14px;font-size:.95rem;transition:box-shadow .15s;display:block}.FfeLinkModal-module__-gMDGW__input:focus{box-shadow:0 0 0 3px var(--accent-light)}.FfeLinkModal-module__-gMDGW__error{font-family:var(--font-body);color:#dc2626;margin-top:.75rem;font-size:.8rem;font-weight:600}.FfeLinkModal-module__-gMDGW__submit{border:2px solid var(--ink);background:var(--yellow);width:100%;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--ink);cursor:pointer;border-radius:99px;justify-content:center;align-items:center;margin-top:1.25rem;padding:12px 24px;font-size:.875rem;font-weight:800;transition:opacity .15s;display:flex}.FfeLinkModal-module__-gMDGW__submit:hover:not(:disabled){opacity:.85}.FfeLinkModal-module__-gMDGW__submit:disabled{opacity:.5;cursor:not-allowed}
.card-partie-dot{border:1.5px solid var(--ink);border-radius:50%;flex-shrink:0;width:12px;height:12px}.card-partie-dot--white{background:#fff}.card-partie-dot--black{background:var(--ink)}.card-partie-dot--lg{border-width:2px;width:18px;height:18px}.game-detail-hero{background:var(--yellow)}.game-detail-hero__inner{padding:32px 1.5rem 40px}@media (max-width:640px){.game-detail-hero__inner{padding:24px 1rem 32px}}.game-detail-score{font-family:var(--font-title);color:var(--ink);margin-bottom:1.5rem;font-size:clamp(2.5rem,6vw,3.5rem);font-weight:900;line-height:1}.game-detail-players{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:.65rem;display:flex}.game-detail-players__vs{text-transform:uppercase;letter-spacing:.1em;color:var(--ink);opacity:.45;flex-shrink:0;font-size:.8rem;font-weight:700}.game-detail-player{align-items:center;gap:10px;text-decoration:none;display:flex}.game-detail-player__name{font-family:var(--font-title);text-transform:uppercase;color:var(--ink);letter-spacing:-.01em;font-size:clamp(1.2rem,3vw,1.6rem);font-weight:900;line-height:.95}a.game-detail-player:hover .game-detail-player__name{text-underline-offset:3px;text-decoration:underline}.game-detail-player__elo{color:var(--ink);opacity:.55;flex-shrink:0;font-size:.85rem;font-weight:700}.game-detail-hero__meta{color:var(--ink);opacity:.65;flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;font-weight:500;display:flex}.game-detail-hero__tournament{color:var(--ink);font-weight:700;text-decoration:none}.game-detail-hero__tournament:hover{text-underline-offset:2px;text-decoration:underline}.game-detail-hero__sep{opacity:.4}.game-detail-body{padding-top:3rem;padding-bottom:4rem}.game-detail-section{border:1.5px solid var(--border-card);background:var(--fill-card);border-radius:18px;padding:2rem;box-shadow:0 1px 3px #1e1d270f,0 10px 24px -16px #1e1d2738}.game-detail-layout{grid-template-columns:1fr;gap:2rem;display:grid}.game-detail-layout__main{flex-direction:column;gap:2rem;min-width:0;display:flex}.game-detail-layout__side{flex-direction:column;gap:2rem;min-width:0;display:flex}@media (min-width:992px){.game-detail-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:2.5rem}}.pgn-tabs{flex-wrap:wrap;gap:8px;margin-bottom:1.5rem;display:flex}.pgn-tab{border:2px solid var(--ink);font-size:.8rem;font-weight:700;font-family:var(--font-body);color:var(--ink);cursor:pointer;background:#fff;border-radius:99px;padding:6px 16px;transition:background .12s,box-shadow .12s}.pgn-tab:hover{background:var(--cream);box-shadow:2px 2px 0 0 var(--ink)}.pgn-tab--active{background:var(--ink);color:var(--cream)}.pgn-viewer__uploader{text-transform:uppercase;letter-spacing:.08em;color:var(--ink);opacity:.5;margin-bottom:1rem;font-size:.75rem;font-weight:700}.game-comparison__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.game-comparison__player{font-family:var(--font-title);text-transform:uppercase;color:var(--ink);align-items:center;gap:8px;font-size:clamp(1rem,3vw,1.4rem);font-weight:900;display:inline-flex}.game-comparison__vs{text-transform:uppercase;letter-spacing:.1em;color:var(--ink);opacity:.4;font-size:.75rem;font-weight:700}.game-comparison__elos{flex-direction:column;gap:16px;display:flex}.elo-bar{flex-direction:column;gap:6px;display:flex}.elo-bar__label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink);opacity:.55;font-size:.7rem;font-weight:700;font-family:var(--font-body)}.elo-bar__row{align-items:center;gap:10px;display:flex}.elo-bar__value{font-family:var(--font-title);color:var(--ink);min-width:44px;font-size:1rem;font-weight:900}.elo-bar__value--white{text-align:right}.elo-bar__value--black{text-align:left}.elo-bar__track{border:1.5px solid var(--border-card);background:#1e1d270f;border-radius:99px;flex:1;height:12px;position:relative;overflow:hidden}.elo-bar__fill{height:100%;transition:width .4s;position:absolute;top:0}.elo-bar__fill--white{border-right:1.5px solid var(--ink);background:#fff;left:0}.elo-bar__fill--black{background:var(--ink);right:0}.pgn-upload-form__title{font-family:var(--font-title);text-transform:uppercase;color:var(--ink);margin:0 0 1rem;font-size:1.25rem;font-weight:900}.pgn-upload-form__textarea{border:2px solid var(--ink);width:100%;color:var(--ink);background:var(--cream);resize:vertical;box-sizing:border-box;border-radius:10px;padding:12px 14px;font-family:monospace;font-size:.85rem}.pgn-upload-form__textarea:focus{outline:none;box-shadow:0 0 0 3px #1e1d271f}.pgn-upload-form__toggle{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;margin:12px 0;font-size:.85rem;font-weight:600;display:flex}.pgn-upload-form__toggle input[type=checkbox]{appearance:none;border:2px solid var(--ink);cursor:pointer;width:18px;height:18px;box-shadow:2px 2px 0 0 var(--ink);background:#fff;border-radius:4px;flex-shrink:0;transition:background .1s,box-shadow 80ms,transform 80ms;position:relative}.pgn-upload-form__toggle input[type=checkbox]:checked{background:var(--yellow);box-shadow:none;transform:translate(1px,1px)}.pgn-upload-form__toggle input[type=checkbox]:checked:after{content:"";border:2.5px solid var(--ink);border-top:none;border-left:none;width:5px;height:9px;position:absolute;top:1px;left:5px;transform:rotate(45deg)}.pgn-upload-form__error{color:#c00;margin:8px 0 0;font-size:.85rem}.pgn-upload-form__submit{border:2px solid var(--ink);background:var(--ink);color:var(--cream);font-size:.9rem;font-weight:700;font-family:var(--font-body);cursor:pointer;border-radius:10px;margin-top:1rem;padding:10px 24px;transition:opacity .12s}.pgn-upload-form__submit:disabled{opacity:.45;cursor:not-allowed}.pgn-upload-form__submit:not(:disabled):hover{opacity:.85}.pgn-add-cta{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;padding:1.5rem 1rem 2.5rem;display:flex}.pgn-add-cta__text{flex-direction:column;align-items:center;gap:6px;display:flex}.pgn-add-cta__label{font-family:var(--font-title);text-transform:uppercase;color:var(--ink);font-size:clamp(1.3rem,3vw,1.7rem);font-weight:900}.pgn-add-cta__desc{color:var(--ink);opacity:.6;max-width:340px;font-size:.9rem}.pgn-add-cta__btns{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.pgn-add-cta--compact{text-align:left;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem}.pgn-add-cta--compact .pgn-add-cta__text{align-items:flex-start}.pgn-add-cta--compact .pgn-add-cta__label{font-size:.95rem}.pgn-add-cta--compact .pgn-add-cta__desc{max-width:none;font-size:.8rem}@media (max-width:480px){.pgn-add-cta--compact{text-align:center;flex-direction:column;align-items:center}.pgn-add-cta--compact .pgn-add-cta__text{align-items:center}}.board-recorder{align-items:flex-start;gap:1.5rem;display:flex}.board-recorder__board-wrap{flex:0 0 min(340px,48%)}.board-recorder__board-outer{aspect-ratio:1;width:100%;position:relative}.board-recorder__board-outer>.cg-wrap{border:2px solid var(--ink);box-shadow:4px 4px 0 0 var(--ink);border-radius:4px;position:absolute;inset:0;overflow:hidden}.board-recorder__side{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.board-recorder__moves{background:var(--cream);border:2px solid var(--ink);border-radius:12px;flex-wrap:wrap;align-content:flex-start;gap:2px 0;min-height:80px;max-height:260px;padding:4px;display:flex;overflow-y:auto}.board-recorder__hint{color:var(--ink);opacity:.45;padding:8px;font-size:.8rem;font-style:italic}.board-recorder__text-link{color:var(--ink);opacity:.55;cursor:pointer;text-align:left;font-size:.8rem;font-family:var(--font-body);background:0 0;border:none;padding:0;text-decoration:underline}.board-recorder__text-link:hover{opacity:1}@media (max-width:580px){.board-recorder{flex-direction:column}.board-recorder__board-wrap{flex:none;width:100%}.board-recorder__moves{max-height:160px}}.pgn-board-viewer{grid-template-rows:1fr auto;grid-template-columns:min(420px,48%) 1fr;gap:1.5rem;display:grid}.pgn-board-viewer__board-wrap{flex-direction:column;grid-row:1/3;gap:6px;display:flex}.pgn-board-viewer__board-inner{align-items:stretch;gap:8px;display:flex}.pgn-board-viewer__board-outer{aspect-ratio:1;flex:1;position:relative}.pgn-board-viewer__board-outer>.cg-wrap{border:2px solid var(--ink);box-shadow:4px 4px 0 0 var(--ink);border-radius:4px;position:absolute;inset:0;overflow:hidden}.eval-bar{flex-shrink:0;width:20px}.eval-bar__track{border:2px solid var(--ink);width:100%;height:100%;box-shadow:2px 2px 0 0 var(--ink);border-radius:6px;flex-direction:column;display:flex;position:relative;overflow:hidden}.eval-bar__black{background:var(--ink);justify-content:center;align-items:flex-start;transition:height .4s;display:flex}.eval-bar__white{background:#fff;justify-content:center;align-items:flex-end;transition:height .4s;display:flex}.eval-bar__label{font-size:.6rem;font-weight:800;font-family:var(--font-body);padding:3px 0;line-height:1}.eval-bar__label--black{color:#fff}.eval-bar__label--white{color:var(--ink)}.pgn-board-viewer__moves{background:var(--cream);border:2px solid var(--ink);border-radius:12px;flex-wrap:wrap;align-content:flex-start;gap:2px 0;max-height:360px;padding:4px;display:flex;overflow-y:auto}.pgn-board-viewer__move-pair{align-items:baseline;gap:2px;display:flex}.pgn-board-viewer__move-num{color:var(--ink);opacity:.4;white-space:nowrap;padding:4px 4px 4px 8px;font-family:monospace;font-size:.72rem;font-weight:700}.pgn-board-viewer__move-btn{color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-family:monospace;font-size:.9rem;transition:background .1s}.pgn-board-viewer__move-btn:hover{background:#1e1d2714}.pgn-board-viewer__move-btn--active{background:var(--ink);color:var(--cream)}.pgn-board-viewer__move-btn--active:hover{background:var(--ink);opacity:.85}.pgn-board-viewer__controls{justify-content:center;align-items:center;gap:8px;display:flex}.pgn-board-viewer__ctrl{border:2px solid var(--ink);cursor:pointer;background:#fff;border-radius:10px;padding:8px 14px;font-size:1rem;line-height:1;transition:background .12s,box-shadow .12s}.pgn-board-viewer__ctrl:hover:not(:disabled){background:var(--cream);box-shadow:2px 2px 0 0 var(--ink)}.pgn-board-viewer__ctrl:disabled{opacity:.3;cursor:not-allowed}.pgn-board-viewer__actions{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}@media (max-width:640px){.pgn-board-viewer{grid-template-rows:auto auto auto;grid-template-columns:1fr}.pgn-board-viewer__board-wrap{grid-row:1;width:100%}.eval-bar{display:none}.pgn-board-viewer__moves{max-height:180px}}.pgn-board-viewer--focus{z-index:9999;padding:env(safe-area-inset-top,8px) 0 env(safe-area-inset-bottom,8px);background:#111;flex-direction:column;justify-content:center;align-items:center;gap:8px;inset:0;display:flex!important;position:fixed!important}.pgn-board-viewer--focus .pgn-board-viewer__board-wrap{grid-row:unset;flex-shrink:0;width:min(100vw,100dvh - 210px)}.pgn-board-viewer--focus .eval-bar{display:block}.pgn-board-viewer--focus .pgn-board-viewer__board-outer{aspect-ratio:1;width:auto;margin:0;flex:1!important}.pgn-board-viewer--focus .pgn-board-viewer__board-outer>.cg-wrap{box-shadow:none;border-left:none;border-right:none;border-radius:0}.pgn-board-viewer--focus .pgn-board-viewer__board-inner{justify-content:center}.pgn-board-viewer--focus .pgn-board-viewer__moves{background:0 0;border-color:#444;flex:none;width:min(100vw,100dvh - 210px);max-height:100px;margin:0}.pgn-board-viewer--focus .pgn-board-viewer__move-num{color:#aaa}.pgn-board-viewer--focus .pgn-board-viewer__move-btn{color:#ddd}.pgn-board-viewer--focus .pgn-board-viewer__move-btn--active{color:#111;background:#fff}.pgn-board-viewer--focus .pgn-board-viewer__actions{width:min(100vw,100dvh - 210px);padding:0}.pgn-board-viewer--focus .pgn-board-viewer__ctrl{color:#fff;background:0 0;border-color:#555}.pgn-board-viewer--focus .pgn-board-viewer__ctrl:hover:not(:disabled){box-shadow:none;background:#ffffff1a}.pgn-board-viewer--focus .pgn-board-viewer__ctrl--on{background:#fff3;border-color:#ffffffb3}.pgn-board-viewer__focus-close{color:#fff;width:40px;height:40px;font-size:1.1rem;font-family:var(--font-body);cursor:pointer;background:#ffffff1f;border:2px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s;display:flex;position:absolute;top:16px;right:16px}.pgn-board-viewer__focus-close:hover{background:#ffffff40;border-color:#fff9}.pgn-board-viewer__player{color:var(--ink);justify-content:space-between;align-items:center;gap:8px;padding:0 2px;font-size:.82rem;font-weight:700;line-height:1.2;display:flex}.pgn-board-viewer__player-name{align-items:center;gap:6px;display:flex}.pgn-board-viewer__player-elo{opacity:.6;font-family:monospace;font-size:.8rem;font-weight:700}.pgn-board-viewer--focus .pgn-board-viewer__player{color:#ddd}.pgn-board-viewer--focus .pgn-board-viewer__player-elo{opacity:.5}
