.splash-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#0b0b2b,#1b2735 70%,#090a0f);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10000;animation:fadeOut .5s ease-out 3s forwards;text-align:center;padding:20px;box-sizing:border-box}.splash-screen .stars{width:1px;height:1px;position:absolute;background:#fff;box-shadow:2vw 5vh 2px #fff,10vw 8vh 2px #fff,15vw 15vh 1px #fff,22vw 22vh 1px #fff,28vw 12vh 2px #fff,32vw 32vh 1px #fff,38vw 18vh 2px #fff,42vw 35vh 1px #fff,48vw 25vh 2px #fff,53vw 42vh 1px #fff,58vw 15vh 2px #fff,63vw 38vh 1px #fff,68vw 28vh 2px #fff,73vw 45vh 1px #fff,78vw 32vh 2px #fff,83vw 48vh 1px #fff,88vw 20vh 2px #fff,93vw 52vh 1px #fff,98vw 35vh 2px #fff,5vw 60vh 1px #fff,12vw 65vh 2px #fff,18vw 72vh 1px #fff,25vw 78vh 2px #fff,30vw 85vh 1px #fff,35vw 68vh 2px #fff,40vw 82vh 1px #fff,45vw 92vh 2px #fff,50vw 75vh 1px #fff,55vw 88vh 2px #fff,60vw 95vh 1px #fff,65vw 72vh 2px #fff,70vw 85vh 1px #fff,75vw 78vh 2px #fff,80vw 92vh 1px #fff,85vw 82vh 2px #fff,90vw 88vh 1px #fff,95vw 75vh 2px #fff;animation:twinkle 8s infinite linear}.splash-screen .shooting-star{position:absolute;width:100px;height:2px;background:linear-gradient(90deg,transparent,white);animation:shoot 3s infinite ease-in}.splash-screen .shooting-star:nth-child(2){top:20%;left:-100px;animation-delay:0s}.splash-screen .shooting-star:nth-child(3){top:35%;left:-100px;animation-delay:1s}.splash-screen .shooting-star:nth-child(4){top:50%;left:-100px;animation-delay:2s}.splash-screen .shooting-star:nth-child(5){top:65%;left:-100px;animation-delay:.5s}.splash-screen .shooting-star:nth-child(6){top:80%;left:-100px;animation-delay:1.5s}.splash-screen .stars:after{content:"";position:absolute;width:1px;height:1px;background:#fff;box-shadow:8vw 12vh 2px #fff,16vw 18vh 1px #fff,24vw 25vh 2px #fff,33vw 15vh 1px #fff,41vw 28vh 2px #fff,49vw 35vh 1px #fff,57vw 22vh 2px #fff,65vw 42vh 1px #fff,73vw 28vh 2px #fff,81vw 48vh 1px #fff,89vw 32vh 2px #fff,97vw 45vh 1px #fff,3vw 68vh 2px #fff,11vw 75vh 1px #fff,19vw 82vh 2px #fff,27vw 88vh 1px #fff,35vw 72vh 2px #fff,43vw 85vh 1px #fff,51vw 92vh 2px #fff,59vw 78vh 1px #fff;animation:twinkle 6s infinite linear reverse}@keyframes twinkle{0%,to{opacity:.8}50%{opacity:.4}}@keyframes shoot{0%{transform:translate(0) translateY(0) rotate(25deg);opacity:1}to{transform:translate(120vw) translateY(50vh) rotate(25deg);opacity:0}}.splash-screen-mobile{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:0}.splash-title{font-size:2rem;font-weight:700;color:#fff;margin:0 0 30px;letter-spacing:-.02em;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;text-shadow:0 2px 8px rgba(0,0,0,.5),0 0 20px rgba(255,255,255,.3);position:relative;z-index:1;animation:fadeInScaleSubtle .8s ease-out}.splash-credit{font-size:1rem;color:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;text-shadow:0 1px 4px rgba(0,0,0,.5),0 0 10px rgba(255,255,255,.2);position:relative;z-index:1;animation:fadeInScaleSubtle .8s ease-out .15s both}@keyframes fadeInScaleSubtle{0%{opacity:0;transform:scale(.995)}to{opacity:1;transform:scale(1)}}.splash-link{color:#fff;text-decoration:none;transition:color .2s ease;text-shadow:0 1px 4px rgba(0,0,0,.5),0 0 10px rgba(255,255,255,.2);font-weight:600}.splash-link:hover{color:#fffc;text-decoration:underline}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;pointer-events:none}}.app-container{display:flex;flex-direction:column;gap:20px;max-width:1600px;margin:0 auto;padding:20px;align-items:stretch;transition:all .3s cubic-bezier(.4,0,.2,1)}.app-main-area{display:flex;gap:20px;flex:1;align-items:flex-start;position:relative;min-width:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.left-sidebar{display:flex;flex-direction:column;gap:20px;width:300px;flex-shrink:0;align-self:stretch;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}.sidebar-section{background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;box-shadow:0 4px 16px #00000014,0 1px 3px #0000000d;padding:20px;border:1px solid rgba(255,255,255,.5);transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),max-height .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1);height:fit-content;display:flex;flex-direction:column}.mode-selector-section{overflow:hidden;max-height:200px;opacity:1;transform:translateY(0);transition:max-height .3s ease,opacity .3s ease,transform .3s ease,margin .3s ease,padding .3s ease,border .3s ease,box-shadow .3s ease}.sidebar-section.mode-selector-section.hidden{max-height:0!important;padding:0!important;margin:0!important;opacity:0;transform:translateY(-10px);overflow:hidden;border:none!important;box-shadow:none!important;min-height:0!important;height:0!important}.sidebar-section.mode-selector-section.hidden+.sidebar-section{margin-top:-20px}.tutorial-toggle-button{padding:8px;background:#0000000d;color:#1d1d1f;border:1px solid rgba(0,0,0,.1);border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;display:flex;align-items:center}.tutorial-toggle-button:hover{background:#00000014;border-color:#00000026}.tutorial-toggle-button.active{background:#667eea26;border-color:#667eea4d;color:#667eea}.tutorial-toggle-button.active:hover{background:#667eea33;border-color:#667eea66}.app{flex:1;min-width:0;padding:30px;background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;box-shadow:0 4px 16px #00000014,0 1px 3px #0000000d;height:650px;position:relative;z-index:1;border:1px solid rgba(255,255,255,.5);display:flex;flex-direction:column;overflow:hidden}.header{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;flex-shrink:0;height:fit-content}.header-bar{display:flex;justify-content:space-between;align-items:center;gap:12px}.header h1{font-size:2rem;font-weight:600;color:#1d1d1f;margin:0;letter-spacing:-.02em;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.tutorial-button{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s}.tutorial-button:hover{background:#5568d3}.game-controls{padding:0;background:transparent}.player-display{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.player-info{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:12px 16px;background:#00000005;border-radius:12px;border:1px solid rgba(0,0,0,.08);transition:all .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1);width:100%;position:relative;animation:fadeIn .3s cubic-bezier(.4,0,.2,1)}.player-info>*:first-child{display:flex;align-items:center;width:100%;gap:12px}@media (max-width: 767px){.player-info>*:first-child{flex-direction:row!important;align-items:center!important;gap:0!important;justify-content:space-between!important}.player-info>*:first-child>.player-label{flex:0 0 auto!important;margin-right:4px!important}.player-info>*:first-child>.player-emoji{flex:0 0 auto!important;margin-left:0!important}.player-info>*:first-child>.current-indicator{flex:0 0 auto!important;margin-left:auto!important}}.player-info.current{border-color:#007aff4d;background:#007aff0f;box-shadow:0 2px 8px #007aff1a}.player-info.current-selecting{border-color:#667eea66;background:#667eea1a;box-shadow:0 2px 12px #667eea33;animation:pulse-highlight 2s ease-in-out infinite}@keyframes pulse-highlight{0%,to{box-shadow:0 2px 12px #667eea33}50%{box-shadow:0 2px 16px #667eea4d}}.player-info.current.has-cycle-prompt{border-color:#007aff4d;background:#007aff0f;box-shadow:0 2px 8px #007aff1a}.player-label{font-weight:500;color:#666}@media (max-width: 767px){.player-label{font-size:15px!important}}.player-emoji{font-size:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.current-indicator{background:#007aff;color:#fff;padding:4px 12px;border-radius:8px;font-size:.75rem;font-weight:600;margin-left:auto;letter-spacing:.01em}@media (max-width: 767px){.current-indicator{background:#007aff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;margin-left:0!important;padding-left:12px!important;padding-right:12px!important}}.game-info{margin-bottom:15px}.current-player{font-size:1.1rem;margin:0 0 10px}.cycle-prompt{color:#d32f2f;font-weight:700;margin:0}.mode-selector{display:flex;gap:0;flex-direction:row;background:#0000000a;border-radius:10px;padding:4px;border:1px solid rgba(0,0,0,.08)}.mode-selector.segmented-control{margin-bottom:12px}.section-title{font-size:.875rem;font-weight:600;color:#86868b;margin:0 0 12px;text-transform:uppercase;letter-spacing:.05em;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.mode-button{flex:1;padding:8px 16px;border:none;background:transparent;color:#86868b;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;position:relative;min-height:44px;touch-action:manipulation}.mode-button:first-child{margin-right:0}.mode-button.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 3px #0000001a;font-weight:600}.mode-button:hover:not(.active):not(:disabled){color:#1d1d1f}.mode-button:disabled{opacity:.5;cursor:not-allowed}.game-mode-indicator{margin-bottom:20px}.mode-display{padding:12px 16px;background:#007aff1a;border:1px solid rgba(0,122,255,.2);border-radius:10px;font-size:.9375rem;font-weight:600;color:#007aff;text-align:center;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.board-container{position:relative;margin:0 auto;height:482px;width:fit-content;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1;min-height:0;overflow:hidden}.board{display:grid;grid-template-columns:repeat(3,150px);grid-template-rows:repeat(3,150px);gap:8px;background:#0000000a;padding:8px;border-radius:16px;position:relative;width:fit-content;margin:0 auto;box-shadow:inset 0 1px 3px #0000001a}.square{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.08);border-radius:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);position:relative;font-size:1.5rem;box-shadow:0 1px 2px #0000000d}.square.available:hover{background:#007aff14;border-color:#007aff4d;transform:scale(1.02);box-shadow:0 4px 12px #007aff26}.square.selected{background:#007aff1f;border-color:#007aff;border-width:2px;box-shadow:0 0 0 3px #007aff1a}.square.classical{background:#ffcc001a;cursor:not-allowed;border-color:#ffcc004d}.square.cycle-endpoint{border-color:#ff9800;border-width:3px;animation:pulse 2s infinite}.square.hovered-endpoint{background:#ffcc80;border-color:#ff9800;border-width:4px;transform:scale(1.1);z-index:10}.square.illegal{background:#d32f2f26!important;border-color:#d32f2f!important;border-width:3px!important;animation:illegalPulse .6s ease-in-out infinite;cursor:not-allowed!important}@keyframes illegalPulse{0%,to{box-shadow:0 0 #d32f2fb3;transform:scale(1)}50%{box-shadow:0 0 0 8px #d32f2f00;transform:scale(1.05)}}.illegal-move-warning{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#d32f2ff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);color:#fff;padding:16px 24px;border-radius:12px;box-shadow:0 8px 32px #d32f2f66;display:flex;align-items:center;gap:12px;z-index:1000;animation:slideInUp .3s cubic-bezier(.4,0,.2,1);max-width:90%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}@keyframes slideInUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.illegal-move-warning .warning-icon{font-size:1.5rem;flex-shrink:0}.illegal-move-warning .warning-text{font-size:.9375rem;font-weight:600;line-height:1.4}@media (max-width: 767px){.illegal-move-warning{bottom:80px;padding:14px 20px;font-size:.875rem;min-width:280px;max-width:calc(100% - 40px);width:auto}.square.illegal{transform:none!important}}@media (max-width: 767px){.square.hovered-endpoint{background:#ffcc80!important;border-color:#ff9800!important;border-width:4px!important;transform:none!important;z-index:10!important;animation:pulse-strong 1.5s infinite}.square.cycle-endpoint:not(.hovered-endpoint){border-width:2px;animation:pulse-subtle 2.5s infinite}}@keyframes pulse{0%,to{box-shadow:0 0 #ff9800b3}50%{box-shadow:0 0 0 10px #ff980000}}@keyframes pulse-strong{0%,to{box-shadow:0 0 #ff9800e6}50%{box-shadow:0 0 0 12px #ff980000}}@keyframes pulse-subtle{0%,to{box-shadow:0 0 #ff980066}50%{box-shadow:0 0 0 6px #ff980000}}.classical-mark{font-size:4.5rem;font-weight:700;color:#333;transition:all .5s ease-in-out;animation:collapseIn .5s ease-in-out}@keyframes collapseIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.classical-mark sub{font-size:1rem;vertical-align:super}.spooky-marks{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center;padding:4px}.spooky-mark{font-size:1.2rem;color:#86868b;padding:4px 8px;background:#0000000a;border:1px solid transparent;border-radius:6px;transition:all .3s cubic-bezier(.4,0,.2,1);animation:fadeOutScale .5s ease-in-out;position:relative}.spooky-mark.preview-confirmed{font-size:1.5rem;color:#007aff;background:#007aff26;border:1px solid rgba(0,122,255,.3);transform:scale(1.15);font-weight:600;z-index:10;box-shadow:0 2px 8px #007aff33}.spooky-mark.preview-removed{opacity:.3;filter:grayscale(100%);transform:scale(.9)}@keyframes fadeOutScale{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}.entanglement-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.spooky-mark.hovered-entanglement{background:#667eea40;border-color:#667eeacc;border-width:2px;transform:scale(1.15);z-index:10;box-shadow:0 2px 8px #667eea4d}@media (max-width: 767px){.spooky-mark.hovered-entanglement{background:#0000000a!important;border-color:transparent!important;border-width:1px!important;transform:none!important;z-index:auto!important;box-shadow:none!important}.entanglement-line-hovered{stroke:transparent!important;stroke-width:0!important;animation:none!important}}.entanglement-line-hovered{stroke:#667eeae6;stroke-width:3;animation:entanglementFlow 2s linear infinite}@keyframes entanglementFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:16}}.winning-line{animation:winningLineDraw .8s ease-out;filter:drop-shadow(0 0 4px rgba(46,125,50,.6))}@keyframes winningLineDraw{0%{stroke-dasharray:1000;stroke-dashoffset:1000;opacity:0}to{stroke-dasharray:1000;stroke-dashoffset:0;opacity:.9}}.cycle-prompt-inline{margin-top:12px;padding:12px;background:#ff95001f;border-radius:10px;border:2px solid rgba(255,149,0,1);width:100%;animation:pulseWarning 2s ease-in-out infinite,slideInFromTop .4s cubic-bezier(.4,0,.2,1);transition:all .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),margin-top .4s cubic-bezier(.4,0,.2,1),padding .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);transform-origin:top;overflow:hidden}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-10px) scaleY(.95)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes pulseWarning{0%,to{box-shadow:0 0 #ff950066}50%{box-shadow:0 0 0 4px #ff950000}}.cycle-prompt-text{margin:0 0 10px;font-size:.8125rem;color:#945600;font-weight:600;text-transform:none;letter-spacing:.02em}.cycle-prompt-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;margin-bottom:10px}.cycle-prompt-text-mobile{display:none}.cycle-prompt-text-desktop{display:inline}.cycle-prompt-caret{display:none;background:none;border:none;padding:4px;cursor:pointer;margin-left:8px;flex-shrink:0}.cycle-prompt-caret svg{transition:transform .4s cubic-bezier(.4,0,.2,1)}.cycle-prompt-caret svg.caret-down{transform:rotate(0)}.cycle-prompt-caret svg.caret-up{transform:rotate(180deg)}@media (max-width: 767px){.cycle-prompt-text{font-size:10px!important;margin:0!important;padding:0!important;line-height:1.2!important}.cycle-prompt-header{margin-bottom:0!important;padding:0!important;min-height:auto!important;height:auto!important;gap:4px!important}.cycle-prompt-text-mobile{display:inline!important;font-size:10px!important;line-height:1.2!important}.cycle-prompt-text-desktop{display:none!important}.cycle-prompt-caret{display:block!important;padding:0!important;margin-left:4px!important;flex-shrink:0!important;width:auto!important;height:auto!important;min-width:auto!important;min-height:auto!important;display:flex!important;align-items:center!important;justify-content:center!important}.cycle-prompt-caret svg{width:10px!important;height:10px!important}.player-number-mobile,.endpoint-label.mobile-hidden{display:none!important}}.cycle-prompt-text strong{color:#ff9500;font-weight:700}.cycle-prompt-inline-container{margin-top:0}.endpoint-buttons-inline{display:flex;gap:10px;margin:0;justify-content:stretch}.endpoint-button-inline{flex:1;padding:12px 16px;background:#0000000a;color:#1d1d1f;border:1px solid rgba(0,0,0,.1);border-radius:10px;cursor:pointer;font-size:.875rem;transition:all .2s cubic-bezier(.4,0,.2,1);font-weight:500;display:flex;align-items:center;gap:8px;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.endpoint-grid-preview{display:flex;align-items:center;justify-content:center;margin-bottom:4px}.endpoint-label{font-size:.9rem}.endpoint-button-inline:hover,.endpoint-button-inline.hovered{background:#007aff1a;border-color:#007aff;transform:translateY(-1px);box-shadow:0 2px 8px #007aff33}.winner-message{text-align:center;padding:20px;background:#0fa93de6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;margin-top:0;margin-bottom:20px;animation:slideInDown .4s cubic-bezier(.4,0,.2,1),winnerPulse 2s ease-in-out infinite;transition:opacity .3s ease,transform .3s ease;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 16px #2e7d3233;position:relative;flex-shrink:0;width:100%;box-sizing:border-box;height:260px}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes winnerPulse{0%,to{transform:scale(1);box-shadow:0 4px 16px #2e7d3233}50%{transform:scale(1.02);box-shadow:0 6px 24px #2e7d324d}}.winner-message h2{margin:0;color:#fff;font-size:1.4rem;font-weight:600}.winner-message.bot-win{background:#d32f2fe6;border-color:#fff3;box-shadow:0 4px 16px #d32f2f33}.winner-message.bot-win h2{color:#fff}@keyframes winnerPulseBotWin{0%,to{transform:scale(1);box-shadow:0 4px 16px #d32f2f33}50%{transform:scale(1.02);box-shadow:0 6px 24px #d32f2f4d}}.winner-message.bot-win{animation:slideInDown .4s cubic-bezier(.4,0,.2,1),winnerPulseBotWin 2s ease-in-out infinite}.winner-message.tie-message{background:#c8c8c8e6;border-color:#6464644d;box-shadow:0 4px 16px #64646433}.winner-message.tie-message h2{color:#4a4a4a}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;overflow:hidden}.confetti-particle{position:fixed;box-shadow:0 1px 3px #00000026}.confetti-square{border-radius:2px}.confetti-rectangle{border-radius:1px}.confetti-circle{border-radius:50%}.tutorial-panel{width:320px;max-width:320px;min-width:0;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;box-shadow:0 4px 16px #00000014,0 1px 3px #0000000d;overflow:hidden;display:flex;flex-direction:column;z-index:1;border:1px solid rgba(255,255,255,.5);align-self:stretch;height:650px;min-height:650px;max-height:650px;opacity:1;transform:translate(0);transition:width .3s cubic-bezier(.4,0,.2,1),max-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1)}.tutorial-panel.hidden{width:0;max-width:0;min-width:0;opacity:0;transform:translate(20px);margin-top:0;margin-bottom:0;margin-right:0;padding:0;border:none;box-shadow:none;pointer-events:none}.tutorial-wrapper,.ai-assistant-wrapper{display:flex;min-width:0}.ai-assistant-wrapper.hidden{width:0;max-width:0;min-width:0;margin:0;padding:0;overflow:hidden}.tutorial-wrapper.tutorial-hidden+.ai-assistant-wrapper{margin-left:-20px}.tutorial-wrapper.ai-hidden{margin-right:-20px}.tutorial-wrapper+.ai-assistant-wrapper.hidden{margin-left:0}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.tutorial-panel-header{padding:20px;background:#00000005;color:#1d1d1f;display:flex;justify-content:space-between;align-items:center;min-height:60px;border-bottom:1px solid rgba(0,0,0,.08)}.tutorial-panel-header h2{margin:0;font-size:1.2rem}.tutorial-panel-header .close-button{background:#0000000d;border:none;color:#1d1d1f;font-size:1.5rem;cursor:pointer;padding:6px 12px;border-radius:8px;transition:all .2s cubic-bezier(.4,0,.2,1);min-width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:300;line-height:1}.tutorial-panel-header .close-button:hover{background:#0000001a}.collapse-animation-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100}.collapse-animation-svg{width:100%;height:100%}.collapse-source{animation:pulse .5s ease-in-out infinite}.collapse-target{animation:expand .5s ease-in-out}.collapse-emoji{animation:fadeInScale .3s ease-out}.collapse-path{animation:drawLine .3s ease-out}@keyframes expand{0%{r:10;opacity:.5}to{r:25;opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes drawLine{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.tutorial-panel-content{padding:20px;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}.youtube-video-container{position:relative;width:100%;padding-bottom:56.25%;height:0;margin-bottom:20px;border-radius:12px;overflow:hidden;background:#000}.youtube-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.tutorial-panel section{margin-bottom:25px}.tutorial-panel h3{color:#667eea;margin-bottom:10px;font-size:1.1rem}.tutorial-panel p{margin-bottom:15px;line-height:1.6;font-size:.9rem;color:#1d1d1f}.tutorial-overview{display:flex;flex-direction:column;height:100%}.tutorial-overview h3{color:#1d1d1f;margin-bottom:20px;font-size:1rem;font-weight:600}.tutorial-section-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.tutorial-section-list li{margin:0}.tutorial-section-button{width:100%;padding:14px 16px;background:#667eea14;border:1px solid rgba(102,126,234,.2);border-radius:12px;color:#667eea;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-align:left;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.tutorial-section-button:hover{background:#667eea26;border-color:#667eea4d;transform:translateY(-1px);box-shadow:0 2px 8px #667eea26}.tutorial-section-button:active{transform:translateY(0)}.tutorial-slide{display:flex;flex-direction:column;height:100%}.tutorial-slide-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:10px}.tutorial-navigation{display:flex;align-items:center;justify-content:space-between;padding-top:16px;margin-top:16px;border-top:1px solid rgba(0,0,0,.08);gap:12px}.tutorial-nav-button{padding:8px 16px;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:8px;color:#1d1d1f;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;flex:0 0 auto}.tutorial-nav-button:hover:not(:disabled){background:#00000014;border-color:#00000026}.tutorial-nav-button:disabled{opacity:.4;cursor:not-allowed}.tutorial-slide-indicator{font-size:.875rem;color:#666;font-weight:500;flex:1;text-align:center}.tutorial-panel ul{margin-left:20px}.tutorial-panel li{margin-bottom:8px;line-height:1.6;font-size:.9rem}.tutorial-panel-backdrop{display:none}.app-emoji-selection{max-width:800px;margin:0 auto;padding:40px 20px;min-height:100vh;display:flex;flex-direction:column;align-items:center}.centered-title{font-size:2.5rem;font-weight:600;color:#1d1d1f;margin:0 0 40px;letter-spacing:-.02em;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;text-align:center}.emoji-selector{width:100%;padding:0;background:transparent;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;flex:1;min-height:0;position:relative;-webkit-overflow-scrolling:touch;border-radius:16px}.emoji-selector::-webkit-scrollbar{width:8px}.emoji-selector::-webkit-scrollbar-track{background:transparent}.emoji-selector::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.emoji-selector::-webkit-scrollbar-thumb:hover{background:#0000004d}.emoji-selector-header{margin-bottom:30px;width:100%;box-sizing:border-box}.difficulty-buttons{display:flex;gap:0;background:#0000000a;border-radius:10px;padding:4px 2px;border:1px solid rgba(0,0,0,.08)}.difficulty-button{flex:1;padding:8px;border:none;background:transparent;color:#86868b;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.difficulty-button:hover:not(.active):not(:disabled){color:#1d1d1f}.difficulty-button.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 3px #0000001a;font-weight:600}.mode-selector-container{margin-top:20px;padding:20px;background:#00000005;border-radius:12px;border:1px solid rgba(0,0,0,.08)}.change-emoji-hint{font-size:.875rem;color:#86868b;font-style:italic;margin-top:10px}.start-game-section{position:absolute;bottom:0;left:50%;transform:translate(-50%);text-align:center;padding-top:12px;padding-bottom:12px;background-color:#ffffff40;background-image:none;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #0000001a;width:100%;max-width:600px;z-index:10;border-radius:0 0 16px 16px;pointer-events:auto}.start-game-button{padding:14px 32px;background:#007aff;color:#fff;border:none;border-radius:12px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;min-width:200px}.start-game-button:hover:not(:disabled){background:#0051d5;transform:translateY(-2px);box-shadow:0 4px 12px #007aff4d}.start-game-button:disabled{background:#d1d1d6;color:#86868b;cursor:not-allowed;opacity:.6}.emoji-selector h2{color:#667eea;margin-bottom:20px;margin-top:0;text-align:center;width:100%;max-width:600px;flex-shrink:0;font-weight:600;font-size:1.5rem}.emoji-selection-step{text-align:center;width:100%;max-width:600px;margin:0 auto;box-sizing:border-box;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:100px;position:relative;z-index:1;border-radius:16px}.player-prompt{margin-bottom:20px}.selected-info{font-size:1rem;color:#666;margin-bottom:15px}.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:20px;margin-bottom:0;overflow:visible;padding:8px;border:1px solid rgba(0,0,0,.08);border-radius:16px 16px 0 0/16px 16px 0px 0;border-radius:16px 16px 0 0/16px 16px 0px 0px;background-color:unset;background:unset;width:100%;box-sizing:border-box;min-width:0}.emoji-button{font-size:2.2rem;padding:10px;background:#f5f5f5;border:2px solid #ddd;border-radius:8px;cursor:pointer;transition:all .2s;aspect-ratio:1;display:flex;align-items:center;justify-content:center;min-width:0}.emoji-button:hover{background:#e3f2fd;border-color:#667eea;transform:scale(1.1)}.emoji-button.selected{background:#007aff26;border-color:#007aff;border-width:2px}.emoji-button.disabled{opacity:.3;cursor:not-allowed;filter:grayscale(100%)}.emoji-button.disabled:hover{background:#f5f5f5;border-color:#ddd;transform:none}.game-actions{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding:0;animation:fadeIn .3s cubic-bezier(.4,0,.2,1);background:transparent;border:none;box-shadow:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.undo-button{width:100%;padding:12px 24px;background:#0000000a;color:#1d1d1f;border:1px solid rgba(0,0,0,.1);border-width:1px;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .2s cubic-bezier(.4,0,.2,1)}.undo-button:hover:not(:disabled){background:#00000014;border-color:#00000026;transform:translateY(-1px)}.undo-button:disabled{opacity:.4;cursor:not-allowed}.new-game-button{width:100%;padding:12px 24px;background:#0000000a;color:#1d1d1f;border:1px solid rgba(0,0,0,.1);border-radius:10px;cursor:pointer;font-size:.9375rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.new-game-button:hover{background:#00000014;border-color:#00000026;transform:translateY(-1px)}.tip-button{position:fixed!important;bottom:30px;right:30px;padding:14px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:50px;cursor:pointer;font-size:.9375rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;display:flex!important;align-items:center;gap:8px;box-shadow:0 4px 16px #667eea66;z-index:10000!important}.tip-button.has-new-tip{animation:tipButtonPulse 2s ease-in-out infinite;box-shadow:0 6px 24px #667eea99}@keyframes tipButtonPulse{0%,to{box-shadow:0 6px 24px #667eea99;transform:scale(1)}50%{box-shadow:0 8px 32px #667eeacc;transform:scale(1.05)}}.tip-button:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 6px 24px #667eea80}.tip-button-icon{font-size:1.2rem}.tip-button-text{font-weight:600}.tip-button-badge{position:absolute;top:-4px;right:-4px;width:20px;height:20px;background:#ff3b30;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;box-shadow:0 2px 8px #ff3b3066;animation:badgePulse 1.5s ease-in-out infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.ai-assistant-panel{width:320px;max-width:320px;min-width:0;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;box-shadow:0 4px 16px #00000014,0 1px 3px #0000000d;overflow:hidden;display:flex;flex-direction:column;z-index:1;border:1px solid rgba(255,255,255,.5);align-self:stretch;height:650px;min-height:650px;max-height:650px;opacity:1;transform:translate(0);transition:width .3s cubic-bezier(.4,0,.2,1),max-width .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1),padding .3s cubic-bezier(.4,0,.2,1)}.ai-assistant-panel.hidden{width:0;max-width:0;min-width:0;opacity:0;transform:translate(20px);margin-top:0;margin-bottom:0;margin-right:0;padding:0;border:none;box-shadow:none;pointer-events:none}.tutorial-panel.hidden+.ai-assistant-panel{margin-left:-20px}.ai-assistant-panel-header{padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;align-items:center;min-height:60px;border-bottom:1px solid rgba(255,255,255,.2);width:100%;box-sizing:border-box}.ai-assistant-title{display:flex;align-items:center;gap:12px}.ai-assistant-emoji{font-size:1.8rem}.ai-assistant-name{font-size:1.25rem;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.ai-assistant-close{background:#fff3;border:none;color:#fff;font-size:1.8rem;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);line-height:1;font-weight:300}.ai-assistant-close:hover{background:#ffffff4d;transform:scale(1.1)}.ai-assistant-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;-webkit-overflow-scrolling:touch;min-height:0}.ai-message{display:flex;gap:12px;align-items:flex-start;animation:messageSlideIn .3s ease-out}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-message.user{flex-direction:row-reverse}.ai-message-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;box-shadow:0 2px 8px #667eea4d}.ai-message.user .ai-message-avatar{background:#0000001a;font-size:1.2rem}.ai-message-content{flex:1;padding:12px 16px;border-radius:18px;background:#0000000a;color:#1d1d1f;font-size:.9375rem;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.ai-message.user .ai-message-content{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ai-message-content p{margin:0 0 8px}.ai-message-content p:last-child{margin-bottom:0}.ai-message-content strong{font-weight:600;color:#667eea}.ai-message.user .ai-message-content strong{color:#ffffffe6}.ai-message-content .message-bold{font-weight:600;color:#667eea;margin:12px 0 8px;font-size:1rem}.ai-message.user .ai-message-content .message-bold{color:#fffffff2}.ai-message-content .message-list-item{margin:4px 0;padding-left:8px}.message-visual{margin-top:12px;padding:12px;background:#fff9;border-radius:12px;display:flex;justify-content:center;align-items:center}.ai-message.user .message-visual{background:#ffffff26}.board-preview-container{display:flex;justify-content:center;align-items:center}.thinking-dots{display:flex;gap:6px;align-items:center;padding:8px 0}.thinking-dots span{width:8px;height:8px;border-radius:50%;background:#667eea;animation:thinkingDot 1.4s ease-in-out infinite}.thinking-dots span:nth-child(1){animation-delay:0s}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinkingDot{0%,60%,to{transform:scale(1);opacity:.7}30%{transform:scale(1.3);opacity:1}}.ai-assistant-actions{padding:16px 20px;border-top:1px solid rgba(0,0,0,.08);display:flex;gap:12px;background:#00000005;flex-shrink:0}.ai-action-button{flex:1;padding:12px 20px;border:none;border-radius:12px;cursor:pointer;font-size:.9375rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif}.ai-action-button.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.ai-action-button.primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.ai-action-button.secondary{background:#0000000a;color:#1d1d1f;border:1px solid rgba(0,0,0,.1)}.ai-action-button.secondary:hover{background:#00000014;transform:translateY(-1px)}.ai-assistant-input-container{padding:16px 20px;border-top:1px solid rgba(0,0,0,.08);background:#00000005;display:flex;gap:12px;align-items:center;flex-shrink:0;width:100%;box-sizing:border-box}.ai-assistant-input{flex:1;padding:12px 16px;border:1px solid rgba(0,0,0,.1);border-radius:12px;font-size:.9375rem;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;background:#fff;color:#1d1d1f;transition:all .2s cubic-bezier(.4,0,.2,1);outline:none}.ai-assistant-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.ai-assistant-input:disabled{opacity:.5;cursor:not-allowed}.ai-assistant-send-button{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;cursor:pointer;font-size:.9375rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;white-space:nowrap}.ai-assistant-send-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.ai-assistant-send-button:disabled{opacity:.5;cursor:not-allowed}.footer-credit{position:fixed;bottom:30px;left:50%;transform:translate(-50%);font-size:.75rem;color:#0006;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;text-align:center;pointer-events:none;z-index:1}.footer-credit .footer-link{pointer-events:auto;color:#0009;text-decoration:none;transition:color .2s ease;cursor:pointer}.footer-credit .footer-link:hover{color:#000c;text-decoration:underline}@media (max-width: 767px){#root{padding:0 16px;align-items:stretch;justify-content:flex-start;max-width:100%;margin:0 16px;background:transparent;overflow:hidden!important;height:100vh!important;height:100dvh!important}body{background:linear-gradient(135deg,#dbe4f0,#cbd6e2)}.mobile-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%;max-width:100vw;position:relative;padding:16px 0 90px;box-sizing:border-box;overflow-x:hidden;overflow-y:hidden}.mobile-card{background:#fff;border-radius:24px;padding:20px 16px 16px;display:flex;flex-direction:column;flex:1;min-height:0;max-height:calc(100vh - 106px);max-height:calc(100dvh - 106px);width:100%;max-width:100%;box-shadow:0 4px 20px #0000000d;position:relative;overflow:hidden;box-sizing:border-box;min-width:0;transition:all .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1)}.splash-screen-mobile{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#0b0b2b,#1b2735 70%,#090a0f);overflow:hidden;z-index:1000;border-radius:0}.mobile-title{font-size:1.5rem;font-weight:700;color:#1d1d1f;margin:0 0 8px;padding:0;text-align:left;order:0}.mobile-content-area{flex:1 1 0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:0;max-height:100%;width:100%;max-width:100%;overflow:hidden;position:relative;box-sizing:border-box;min-width:0;transition:all .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),margin-top .4s cubic-bezier(.4,0,.2,1),padding-top .4s cubic-bezier(.4,0,.2,1)!important}.board-container{transition:transform .3s ease-out,margin-top .3s ease-out!important}.mobile-content-area{transition:transform .3s ease-out,margin-top .3s ease-out,padding-top .3s ease-out!important}.mobile-player-display{transition:all .3s ease-out!important}.cycle-collapse-hint{text-align:center;font-size:13px!important;color:#1d1d1f!important;margin-bottom:6px!important;padding:8px!important;background:#fff199!important;border-radius:8px;animation:fadeIn .3s ease-out;transition:opacity .3s ease-out,margin-bottom .3s ease-out!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mobile-player-display{width:100%;max-width:100%;margin-bottom:0;box-sizing:border-box}.mobile-player-display.bottom{margin-top:auto;margin-bottom:0;padding-top:20px}.mobile-player-display.top{margin-top:0;margin-bottom:0!important;padding-bottom:0;order:1;transition:all .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1)!important}.game-info{margin-bottom:0!important}.game-controls{padding:0!important;margin:0!important}.mobile-title{order:0}.player-display{flex-direction:row;justify-content:space-between;gap:12px;width:100%;max-width:100%;box-sizing:border-box;margin-bottom:0!important}.player-info{flex:1;padding:12px;min-height:56px;justify-content:flex-start;align-items:flex-start;background:#f5f5f7;border:1px solid rgba(0,0,0,.05);min-width:0;max-width:100%;box-sizing:border-box;transition:all .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1),margin .4s cubic-bezier(.4,0,.2,1),padding .4s cubic-bezier(.4,0,.2,1),align-items .4s cubic-bezier(.4,0,.2,1)!important;gap:12px}.player-display{transition:all .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1),gap .4s cubic-bezier(.4,0,.2,1)!important}.player-info.has-cycle-prompt{min-height:auto!important;align-items:flex-start!important;gap:0!important;transition:all .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1),align-items .4s cubic-bezier(.4,0,.2,1),padding .4s cubic-bezier(.4,0,.2,1)!important}.mobile-player-display.bottom{transition:all .4s cubic-bezier(.4,0,.2,1),min-height .4s cubic-bezier(.4,0,.2,1),max-height .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1)!important}.mobile-player-display.bottom .player-info.has-cycle-prompt{min-height:auto!important;gap:0!important}.player-info.current{background:#eef2ff;border-color:#667eea}.board-container{width:100%!important;max-width:100%!important;aspect-ratio:1 / 1!important;position:relative!important;margin:0!important;flex-shrink:1!important;min-width:0!important;min-height:0!important;overflow:hidden!important;box-sizing:border-box!important;display:block!important;flex-direction:unset!important;align-items:unset!important;justify-content:unset!important;align-self:stretch!important;contain:layout size!important;isolation:isolate!important;height:auto!important;flex:unset!important}.board{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;padding:8px!important;gap:8px!important;background:#f5f5f7!important;border-radius:16px!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:repeat(3,minmax(0,1fr))!important;box-sizing:border-box!important;display:grid!important;overflow:hidden!important;contain:layout size style!important;position:relative!important;min-width:0!important;min-height:0!important;isolation:isolate!important;margin:0!important}.square{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;border-radius:8px!important;min-height:0!important;min-width:0!important;font-size:1.5rem!important;aspect-ratio:1!important;box-sizing:border-box!important;overflow:hidden!important}.cycle-prompt-inline{margin-top:0!important;margin-bottom:0!important;transition:all .4s cubic-bezier(.4,0,.2,1),padding .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1)!important;transform-origin:top!important;overflow:hidden!important;padding:4px!important;height:auto!important;min-height:auto!important;max-height:none!important}.cycle-prompt-inline.minimized{padding:4px!important}.cycle-prompt-inline .cycle-prompt-header{margin-bottom:0!important;padding:0!important;transition:all .3s cubic-bezier(.4,0,.2,1);align-items:center!important;min-height:auto!important;height:auto!important}.cycle-prompt-content{overflow:hidden;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1),margin-top .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1),padding .4s cubic-bezier(.4,0,.2,1)!important;max-height:1000px;opacity:1;margin-top:4px!important;transform:translateY(0) scaleY(1);transform-origin:top}.cycle-prompt-content.minimized{max-height:0!important;opacity:0!important;margin-top:0!important;padding-top:0!important;padding-bottom:0!important;transform:translateY(-8px) scaleY(.95);overflow:hidden}.cycle-prompt-inline>*:not(.cycle-prompt-header){margin-top:8px!important}.cycle-prompt-inline:empty{opacity:0!important;max-height:0!important;overflow:hidden!important;margin-top:0!important;padding-top:0!important;padding-bottom:0!important;transform:scaleY(0)!important}.endpoint-buttons-inline{flex-direction:row!important;gap:8px!important;width:100%!important}.endpoint-button-inline{flex-direction:column!important;justify-content:center!important;align-items:center!important;flex:1!important;width:auto!important;padding:4px 8px!important;transition:all .2s ease-out!important}.endpoint-button-inline.selected{background:#007aff26!important;border-color:#007aff!important}.endpoint-grid-preview{margin-bottom:2px!important;margin-right:0!important;flex-shrink:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.endpoint-label{flex:1!important;text-align:left!important}.mobile-bottom-bar{position:fixed;bottom:0;left:0;right:0;padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom));background:transparent;display:flex;justify-content:space-between;align-items:center;z-index:100;pointer-events:none;margin-bottom:16px}.mobile-bar-left,.mobile-bar-right,.rule-button,.ai-tips-button{pointer-events:auto}.mobile-bar-left{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mobile-bar-right{display:flex;gap:8px;align-items:center}.mobile-difficulty-dropdown{padding:6px 28px 6px 8px;border:1px solid rgba(0,0,0,.1);border-radius:8px;background:#ffffffe6;color:#1d1d1f;font-size:.8rem;font-weight:500;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;cursor:pointer;min-height:40px;height:40px;touch-action:manipulation;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%231d1d1f' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;min-width:0;flex-shrink:1}.mobile-difficulty-dropdown:hover{background-color:#fff;border-color:#00000026}.mobile-difficulty-dropdown:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff1a}.mobile-tip-button{position:relative!important;bottom:auto!important;right:auto!important;padding:10px!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border:none!important;border-radius:16px!important;cursor:pointer!important;font-size:13px!important;font-weight:400!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif!important;display:flex!important;align-items:center!important;gap:2px!important;box-shadow:0 4px 16px #667eea66!important;z-index:auto!important;min-height:40px!important}.mobile-tip-button.has-new-tip{animation:tipButtonPulse 2s ease-in-out infinite!important;box-shadow:0 6px 24px #667eea99!important}.mobile-tip-button .tip-button-icon{font-size:1rem!important}.mobile-tip-button .tip-button-text{font-weight:400!important}.mobile-tip-button .tip-button-badge{position:absolute!important;top:-4px!important;right:-4px!important;width:18px!important;height:18px!important;background:#ff3b30!important;color:#fff!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:.7rem!important;font-weight:700!important;box-shadow:0 2px 8px #ff3b3066!important;animation:badgePulse 1.5s ease-in-out infinite!important}.mode-selector-pill{display:flex;background:#0000000a;border-radius:10px;padding:2px;border:1px solid rgba(0,0,0,.08);gap:0;height:48px;align-items:center}.mode-selector-pill .pill-button{flex:0 0 auto;width:auto;padding:6px 16px;border:none;background:transparent;color:#86868b;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s cubic-bezier(.4,0,.2,1);min-height:40px;height:40px;touch-action:manipulation;display:flex;align-items:center;justify-content:center}.mode-selector-pill .pill-button.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 3px #0000001a;font-weight:600}.game-actions-pill{display:flex;background:transparent;border-radius:12px;padding:0;box-shadow:none;gap:8px}.game-actions-pill .pill-button{background:#ededed;border-radius:12px;padding:4px 16px;box-shadow:0 2px 10px #0000000d}.pill-button{padding:8px 16px;border:none;background:transparent;font-size:.9rem;font-weight:500;color:#666;border-radius:8px;min-height:40px;white-space:nowrap}.pill-button.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 3px #0000001a;font-weight:600}.rule-button{background:#fff;box-shadow:0 2px 10px #0000000d;color:#666;min-height:48px!important;height:48px!important;display:flex;align-items:center;justify-content:center}.rule-button.active{background:#667eea26;color:#667eea;box-shadow:0 2px 10px #667eea33}.emoji-selector{width:100%!important;height:100%!important;max-height:100%!important;position:relative!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;align-items:stretch!important;flex:1 1 0!important;min-height:0!important}.emoji-selection-step{flex:1 1 0!important;display:flex!important;flex-direction:column!important;min-height:0!important;max-height:100%!important;overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:120px!important;-webkit-overflow-scrolling:touch!important;width:100%!important;max-width:100%!important;margin:0!important;box-sizing:border-box!important}.emoji-grid{grid-template-columns:repeat(5,1fr)!important;gap:8px!important;padding:4px!important;overflow:visible!important;flex:0 0 auto!important;width:100%!important;box-sizing:border-box!important}.emoji-button{font-size:1.8rem;padding:8px;aspect-ratio:1;background:#f5f5f7;border:1px solid transparent}.player-prompt{font-size:14px!important;color:#667eea;margin-bottom:16px!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;flex-shrink:0!important;width:100%!important;box-sizing:border-box!important;padding:8px!important;position:sticky!important;top:0!important;background:#fff!important;z-index:5!important}.start-game-section{position:absolute!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;max-width:100%!important;background:#fff3!important;backdrop-filter:blur(20px) saturate(180%)!important;-webkit-backdrop-filter:blur(20px) saturate(180%)!important;padding:16px!important;display:flex!important;justify-content:center!important;align-items:center!important;border:none!important;box-shadow:0 -4px 20px #0000001a!important;border-radius:0 0 16px 16px!important;flex-shrink:0!important;z-index:10!important;box-sizing:border-box!important;pointer-events:auto!important;margin:0!important;transform:none!important}.start-game-section .start-game-button{max-width:100%!important;box-sizing:border-box!important;width:100%!important;margin:0!important;padding:12px 24px!important}.start-game-button{width:100%;background:#007aff;color:#fff;border-radius:12px;font-size:1rem;font-weight:600;box-shadow:0 4px 12px #007aff4d}.app-container,.left-sidebar,.header,.footer-credit{display:none!important}.tutorial-wrapper{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:1000!important;display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;background:#00000080!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;transition:opacity .3s cubic-bezier(.4,0,.2,1)!important;margin:0!important;padding:16px!important;box-sizing:border-box!important}.tutorial-wrapper.tutorial-hidden{opacity:0!important;pointer-events:none!important}.tutorial-wrapper:not(.tutorial-hidden){opacity:1!important;pointer-events:auto!important}.ai-assistant-wrapper{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;z-index:1000!important;display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;background:#00000080!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;opacity:0!important;pointer-events:none!important;transition:opacity .3s cubic-bezier(.4,0,.2,1)!important;margin:0!important;padding:16px!important;box-sizing:border-box!important}.ai-assistant-wrapper:not(.hidden){opacity:1!important;pointer-events:auto!important}.tip-button.panel-open{display:none!important}.ai-assistant-panel{width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;border-radius:24px 24px 0 0!important}.tutorial-panel-header{width:100%!important;max-width:100%!important;box-sizing:border-box!important}.tutorial-panel,.ai-assistant-panel{width:100%;max-width:none;height:100%;min-height:0;max-height:none;margin:0;border-radius:24px;position:relative;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:flex-start!important}}@media (min-width: 768px) and (max-width: 1024px){.app-container{gap:16px;padding:16px}.left-sidebar{width:280px}.board{grid-template-columns:repeat(3,min(140px,18vw));grid-template-rows:repeat(3,min(140px,18vw))}.app{padding:24px;height:auto;min-height:600px}.tutorial-panel,.ai-assistant-panel{width:300px;max-width:300px;height:600px;min-height:600px;max-height:600px}}@media (max-width: 1024px){body{overflow-x:hidden;position:relative}.app-container,.app-main-area,.board-container,.board{max-width:100%;overflow-x:hidden}.tutorial-panel-content,.ai-assistant-messages,.emoji-selection-step{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}@media (max-width: 767px){html{height:100vh;height:100dvh;height:-webkit-fill-available;overflow:hidden!important}body,#root{min-height:100vh;min-height:100dvh;min-height:-webkit-fill-available;overflow:hidden!important;height:100vh;height:100dvh}.app-container{min-height:calc(100vh - 20px);min-height:calc(100dvh - 20px)}}@media (hover: none) and (pointer: coarse){button,.square,.emoji-button,.endpoint-button-inline,.mode-button{touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,122,255,.2)}button:not(.spooky-mark):not(.classical-mark):not(.cycle-prompt-caret){min-height:44px;min-width:44px}.square.available:hover{background:#fffffff2;transform:none}.square.available:active{background:#007aff14;transform:scale(.98)}.endpoint-button-inline:active,button:active{transform:scale(.98)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;margin:0;padding:0;color:#1d1d1f}#root{width:100%;max-width:1200px;padding:20px;margin:0 auto;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow-x:hidden;position:relative}#root.ai-assistant-open{justify-content:flex-start}@media (max-width: 767px){#root{padding-left:16px;padding-right:16px;position:relative}}html,body{overflow-x:hidden;width:100%;position:relative}
