.card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}.card:hover{transform:translateY(-2px)}.card--empty{background:#ffffff1a;border:2px dashed rgba(255,255,255,.3)}.card--face-down{background:linear-gradient(135deg,#2c3e50,#34495e);border:2px solid #1a252f;box-shadow:var(--card-shadow)}.card--face-down.card--player1{background:linear-gradient(135deg,#8b0000,#b22222);border-color:#5c0000}.card--face-down.card--player2{background:linear-gradient(135deg,#00008b,#4169e1);border-color:#00005c}.card--face-up{background:transparent;box-shadow:var(--card-shadow);overflow:hidden}.card--selected{transform:translateY(-4px);box-shadow:0 4px 12px #0006,0 0 0 3px gold}.card--valid-target{box-shadow:0 0 0 3px #4caf50}.card--valid-target.card--empty{background:#4caf5033;border-color:#4caf50}.card--hint{box-shadow:0 0 8px 2px #f9a825cc,0 0 0 2px #f9a825}.card__image{width:100%;height:100%;object-fit:contain;pointer-events:none}.pile{display:flex;flex-direction:column;align-items:center;gap:4px}.pile__label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;opacity:.7;white-space:nowrap}.pile__stack{position:relative}.pile__count{position:absolute;bottom:-8px;right:-8px;background:#000000b3;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;border-radius:10px;min-width:20px;text-align:center}@media (min-width: 768px){.pile__label{font-size:11px}}.tableau-pile{position:relative;height:var(--card-height);width:var(--card-width)}.tableau-pile__card{position:absolute;top:0}.tableau-pile--left .tableau-pile__card{right:calc(var(--index, 0) * 16px)}.tableau-pile--right .tableau-pile__card{left:calc(var(--index, 0) * 16px)}@media (min-width: 768px){.tableau-pile--left .tableau-pile__card{right:calc(var(--index, 0) * 20px)}.tableau-pile--right .tableau-pile__card{left:calc(var(--index, 0) * 20px)}}.foundation-pile{width:var(--card-width);height:var(--card-height)}.foundation-pile--empty{background:#ffffff0d;border:2px dashed rgba(255,255,255,.3);border-radius:var(--card-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,border-color .2s ease}.foundation-pile--empty:hover{background:#ffffff1a}.foundation-pile--valid-target{background:#4caf5033;border-color:#4caf50}.foundation-pile__suit-icon{width:40%;height:40%;opacity:.4;pointer-events:none}.game-board{flex:1;display:flex;flex-direction:column;padding:8px 8px 48px;gap:8px;overflow:hidden}.player-area{display:flex;align-items:center;justify-content:center;gap:var(--pile-gap);padding:8px;border-radius:8px;background:#0000001a;transition:background .2s ease}.player-area--active{background:#ffd70026;box-shadow:inset 0 0 0 2px #ffd7004d}.player-area__info{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:60px;padding:4px 8px}.player-area__name{font-weight:600;font-size:.85rem;color:#fff;white-space:nowrap}.player-area__cards{font-size:.75rem;color:#ffffffb3;white-space:nowrap}.middle-area{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--card-gap);padding:8px 0;overflow:visible}.middle-row{display:grid;grid-template-columns:var(--card-width) var(--card-width) var(--card-width) var(--card-width);gap:var(--card-gap);align-items:center;justify-content:center}.middle-row>*{overflow:visible}@media (min-width: 768px){.game-board{padding:16px 16px 56px;gap:12px}.player-area{padding:12px;gap:calc(var(--pile-gap) * 2)}.middle-area,.middle-row{gap:var(--pile-gap)}}.game-status{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#0000004d;gap:16px}.game-status__info{display:flex;align-items:center;gap:16px}.game-status__winner{font-weight:700;font-size:16px;color:gold}.game-status__actions{display:flex;align-items:center;gap:8px;margin-left:auto}.game-status__button{padding:8px 16px;border:none;border-radius:4px;background:#4caf50;color:#fff;font-weight:700;cursor:pointer;transition:background .2s ease,opacity .2s ease}.game-status__button:hover:not(:disabled){background:#45a049}.game-status__button:disabled{opacity:.5;cursor:not-allowed}.game-status__button--undo{background:#666}.game-status__button--undo:hover:not(:disabled){background:#555}.game-status__button--settings{padding:8px;background:#666;display:flex;align-items:center;justify-content:center}.game-status__button--settings:hover{background:#555}@media (min-width: 768px){.game-status{padding:12px 24px}}.animating-card{position:fixed;z-index:1000;pointer-events:none;border-radius:var(--card-radius, 8px);box-shadow:0 8px 24px #0006}.animating-card__image{width:100%;height:100%;display:block;border-radius:var(--card-radius, 8px)}.settings-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.settings-modal{background:#2a2a2a;border-radius:12px;padding:0;min-width:280px;max-width:90vw;box-shadow:0 8px 32px #0006}.settings-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}.settings-modal__header h2{margin:0;font-size:18px;font-weight:600;color:#fff}.settings-modal__close{background:none;border:none;color:#888;font-size:24px;cursor:pointer;padding:0;line-height:1;transition:color .2s}.settings-modal__close:hover{color:#fff}.settings-modal__content{padding:16px 20px;display:flex;flex-direction:column;gap:16px}.settings-modal__option{display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:14px}.settings-modal__toggle{position:relative;width:48px;height:28px;background:#555;border:none;border-radius:14px;cursor:pointer;transition:background .2s;padding:0}.settings-modal__toggle--on{background:#4caf50}.settings-modal__toggle-knob{position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .2s}.settings-modal__toggle--on .settings-modal__toggle-knob{transform:translate(20px)}.settings-modal__option--column{flex-direction:column;align-items:flex-start;gap:8px}.settings-modal__select{width:100%;padding:8px 32px 8px 10px;background:#3a3a3a;color:#fff;border:1px solid #555;border-radius:6px;font-size:14px;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;transition:border-color .2s}.settings-modal__select:focus{outline:none;border-color:#4caf50}.settings-modal__divider{height:1px;background:#ffffff1a;margin:8px 0}.settings-modal__tutorial-button{width:100%;padding:12px 16px;background:#ffd7001a;border:1px solid rgba(255,215,0,.3);border-radius:6px;color:gold;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.settings-modal__tutorial-button:hover{background:#ffd70033;border-color:#ffd70080}.settings-modal__history-section{display:flex;flex-direction:column;gap:8px}.settings-modal__history-toggle{background:none;border:none;color:#fff;font-size:14px;cursor:pointer;padding:4px 0;text-align:left;transition:color .2s}.settings-modal__history-toggle:hover{color:#4caf50}.settings-modal__history{max-height:150px;overflow-y:auto;background:#1a1a1a;border-radius:6px;padding:8px 12px;font-family:monospace;font-size:12px;display:flex;flex-wrap:wrap;gap:4px 8px}.settings-modal__move{color:#888;white-space:nowrap}.settings-modal__move-num{color:#555;margin-right:2px}.settings-modal__copy-button{width:100%;padding:10px 16px;background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:6px;color:#4caf50;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.settings-modal__copy-button:hover{background:#4caf5033;border-color:#4caf5080}.settings-modal__copy-button--copied{background:#4caf504d;border-color:#4caf50}.settings-modal__copy-hint{margin:0;font-size:11px;color:#666;text-align:center}.evaluation-bar-container{display:flex;height:100%;flex-shrink:0}.evaluation-bar{width:12px;height:100%;background:#1a1a1a;display:flex;flex-direction:column;justify-content:flex-end;flex-shrink:0}.evaluation-bar:first-child{border-right:1px solid rgba(255,255,255,.05)}.evaluation-bar:last-child{border-right:1px solid rgba(255,255,255,.1)}.evaluation-bar--neural{background:#1e3a5f}.evaluation-bar__white{width:100%;background:#f0f0f0;transition:height .3s ease}.evaluation-bar__red{width:100%;background:#dc2626;transition:height .3s ease}@media (min-width: 768px){.evaluation-bar{width:14px}}.tutorial-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;pointer-events:none}.tutorial-overlay__backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000bf;pointer-events:auto}.tutorial-overlay__highlight{position:fixed;border-radius:8px;box-shadow:0 0 0 9999px #000000bf;background:transparent;pointer-events:none;z-index:2001;animation:tutorial-pulse 2s ease-in-out infinite}@keyframes tutorial-pulse{0%,to{box-shadow:0 0 0 9999px #000000bf,0 0 0 3px #ffd70099}50%{box-shadow:0 0 0 9999px #000000bf,0 0 0 6px #ffd7004d}}.tutorial-overlay__tooltip{position:fixed;background:#2a2a2a;border-radius:12px;padding:20px;max-width:400px;min-width:320px;box-shadow:0 8px 32px #0006,0 0 0 2px #ffd7004d;pointer-events:auto;z-index:2002}.tutorial-overlay__tooltip-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:12px}.tutorial-overlay__title{margin:0;font-size:18px;font-weight:600;color:gold}.tutorial-overlay__skip{background:none;border:none;color:#888;font-size:12px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s;white-space:nowrap}.tutorial-overlay__skip:hover{color:#fff;background:#ffffff1a}.tutorial-overlay__content{color:#ddd;font-size:14px;line-height:1.6;margin-bottom:20px}.tutorial-overlay__content p{margin:0 0 8px}.tutorial-overlay__content p:last-child{margin-bottom:0}.tutorial-overlay__content p:empty{height:8px}.tutorial-overlay__content strong{color:#fff;font-weight:600}.tutorial-overlay__interactive-hint{background:#ffd7001a;border:1px solid rgba(255,215,0,.3);border-radius:6px;padding:10px 14px;color:gold;font-size:13px;text-align:center;margin-bottom:16px;animation:hint-pulse 1.5s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.7}}.tutorial-overlay__footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.tutorial-overlay__progress{color:#888;font-size:12px}.tutorial-overlay__nav{display:flex;gap:8px}.tutorial-overlay__button{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.tutorial-overlay__button--primary{background:#4caf50;border:none;color:#fff}.tutorial-overlay__button--primary:hover:not(:disabled){background:#5cbf60}.tutorial-overlay__button--primary:disabled{background:#555;color:#888;cursor:not-allowed}.tutorial-overlay__button--secondary{background:transparent;border:1px solid #555;color:#ccc}.tutorial-overlay__button--secondary:hover:not(:disabled){border-color:#777;color:#fff}.tutorial-overlay__button--secondary:disabled{border-color:#444;color:#666;cursor:not-allowed}.tutorial-prompt{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:3000}.tutorial-prompt__card{background:#2a2a2a;border-radius:16px;padding:32px;max-width:420px;text-align:center;box-shadow:0 16px 48px #00000080}.tutorial-prompt__title{font-size:24px;font-weight:700;color:#fff;margin:0 0 12px}.tutorial-prompt__subtitle{font-size:16px;color:#fff;margin:0 0 24px;line-height:1.5}.tutorial-prompt__buttons{display:flex;flex-direction:column;gap:12px}.tutorial-prompt__button{padding:14px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.tutorial-prompt__button--primary{background:#4caf50;border:none;color:#fff}.tutorial-prompt__button--primary:hover{background:#5cbf60;transform:translateY(-1px)}.tutorial-prompt__button--secondary{background:transparent;border:1px solid #555;color:#aaa}.tutorial-prompt__button--secondary:hover{border-color:#777;color:#fff}@media (max-width: 480px){.tutorial-overlay__tooltip{max-width:calc(100vw - 32px);min-width:unset;left:16px!important;right:16px!important;transform:translateY(-50%)!important}.tutorial-prompt__card{margin:16px;padding:24px}.tutorial-prompt__title{font-size:20px}.tutorial-prompt__subtitle{font-size:14px}}.app{height:100%;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--bg-color) 0%,var(--felt-color) 100%)}.app__main{flex:1;display:flex;overflow:hidden}.neural-loading,.neural-fallback{position:fixed;top:50px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:4px;font-size:12px;z-index:100}.neural-loading{background:#3b82f6e6;color:#fff}.neural-fallback{background:#f59e0be6;color:#fff}.tutorial-page{height:100%;display:flex;flex-direction:column;background:linear-gradient(135deg,var(--bg-color) 0%,var(--felt-color) 100%)}.tutorial-page__board{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0}.tutorial-page__panel{background:#000000d9;padding:12px 16px;display:flex;flex-direction:column;gap:10px;height:35vh;min-height:200px;flex-shrink:0}.tutorial-page__progress{display:flex;align-items:center;gap:10px}.tutorial-page__progress-bar{flex:1;height:4px;background:#fff3;border-radius:2px;overflow:hidden}.tutorial-page__progress-fill{height:100%;background:#4caf50;border-radius:2px;transition:width .3s ease}.tutorial-page__step-count{color:#fff9;font-size:12px;white-space:nowrap}.tutorial-page__content{flex:1;min-height:0;overflow-y:auto}.tutorial-page__title{margin:0 0 8px;font-size:16px;font-weight:600;color:#fff}.tutorial-page__text{color:#ffffffd9;font-size:13px;line-height:1.5}.tutorial-page__text p{margin:0 0 6px}.tutorial-page__text p:last-child{margin-bottom:0}.tutorial-page__text p:empty{height:4px}.tutorial-page__text strong{color:#fff;font-weight:600}.tutorial-page__action-hint{background:#ffd70026;border:1px solid rgba(255,215,0,.4);border-radius:6px;padding:8px 12px;color:gold;font-size:13px;text-align:center;animation:pulse-hint 1.5s ease-in-out infinite}@keyframes pulse-hint{0%,to{opacity:1}50%{opacity:.7}}.tutorial-page__nav{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.tutorial-page__nav-main{display:flex;gap:8px}.tutorial-page__button{padding:10px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.tutorial-page__button--skip{background:transparent;color:#ffffff80;padding:10px 12px}.tutorial-page__button--skip:hover{color:#fffc}.tutorial-page__button--back{background:#ffffff1a;color:#fff}.tutorial-page__button--back:hover{background:#fff3}.tutorial-page__button--next{background:#4caf50;color:#fff;min-width:80px}.tutorial-page__button--next:hover:not(:disabled){background:#5cbf60}.tutorial-page__button--next:disabled{background:#333;color:#666;cursor:not-allowed}.tutorial-highlight{position:fixed;border:2px solid #ffd700;border-radius:6px;pointer-events:none;z-index:100;animation:highlight-pulse 1.5s ease-in-out infinite;box-shadow:0 0 12px #ffd70080}@keyframes highlight-pulse{0%,to{box-shadow:0 0 12px #ffd70080}50%{box-shadow:0 0 20px #ffd700b3}}*{box-sizing:border-box;margin:0;padding:0}:root{--card-width: 60px;--card-height: 84px;--card-radius: 6px;--card-gap: 8px;--pile-gap: 12px;--bg-color: #1a472a;--felt-color: #2d5a3d;--card-shadow: 0 2px 4px rgba(0, 0, 0, .3)}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-color);color:#fff;touch-action:manipulation;-webkit-user-select:none;user-select:none}@media (min-width: 768px){:root{--card-width: 70px;--card-height: 98px;--card-radius: 8px;--card-gap: 10px;--pile-gap: 16px}}@media (min-width: 1024px){:root{--card-width: 80px;--card-height: 112px;--card-gap: 12px;--pile-gap: 20px}}
