@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap";
:root{--bg:#fff;--white:#fff;--black:#111;--gray1:#f0f0f0;--gray2:#d0d0d0;--gray3:#a0a0a0;--gray4:#606060;--red:#e03030;--green:#28a028;--border:#222}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--bg);width:100%;max-width:100vw;height:100svh;color:var(--black);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Noto Sans JP,sans-serif;overflow:hidden}#__next{width:100%;height:100svh;overflow:hidden}.geo-bg{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.geo-circle{opacity:.35;border:1.5px solid;border-radius:50%;position:absolute}.geo-polygon{opacity:.3;position:absolute}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(3deg)}}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}button:active{transform:scale(.97)!important}.opponents-scroll::-webkit-scrollbar{display:none}.opponents-scroll-container{flex:1;align-items:center;width:100%;max-width:100vw;display:flex;position:relative;overflow:hidden}.opponents-scroll-container:before,.opponents-scroll-container:after{content:"";z-index:5;pointer-events:none;width:40px;position:absolute;top:0;bottom:0}.opponents-scroll-container:before{background:linear-gradient(to right,var(--bg)0%,transparent 100%);left:0}.opponents-scroll-container:after{background:linear-gradient(to left,var(--bg)0%,transparent 100%);right:0}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--gray2);border-radius:0}.game-active{-webkit-user-select:none;user-select:none}input:focus{outline:none}.card.flip-reveal{animation:.46s both cardFlip}@keyframes cardFlip{0%{transform:perspective(600px)rotateY(0)}42%{opacity:.2;transform:perspective(600px)rotateY(90deg)}58%{opacity:.2;transform:perspective(600px)rotateY(90deg)}to{opacity:1;transform:perspective(600px)rotateY(0)}}.card.shake{animation:.4s both cardShake}@keyframes cardShake{0%,to{transform:translate(0)}18%{transform:translate(-8px)}36%{transform:translate(8px)}54%{transform:translate(-5px)}72%{transform:translate(5px)}}.card.slide-in{animation:.4s cubic-bezier(.22,1,.36,1) both slideIn}@keyframes slideIn{0%{opacity:0;transform:translateY(-16px)scale(.84)}to{opacity:1;transform:translateY(0)scale(1)}}.card.flash-target{animation:.32s both flashTarget}@keyframes flashTarget{0%{box-shadow:none}45%{box-shadow:0 0 0 3px #111,0 0 18px #00000059}to{box-shadow:none}}.card.white.flash-target{animation:.32s both flashTargetWhite}@keyframes flashTargetWhite{0%{box-shadow:none}45%{box-shadow:0 0 0 3px #111,0 0 18px #0003}to{box-shadow:none}}.combo-badge{z-index:30;pointer-events:none;color:#fff;border:1px solid var(--white);letter-spacing:.04em;white-space:nowrap;background:#111;border-radius:0;font-family:Noto Sans JP,sans-serif;font-size:17px;font-weight:900;animation:1.2s cubic-bezier(.22,1,.36,1) both comboPop;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes comboPop{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}18%{opacity:1;transform:translate(-50%,-50%)scale(1.08)}30%{transform:translate(-50%,-50%)scale(1)}72%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.9)}}.my-area.turn-pulse{animation:.6s both turnPulse}@keyframes turnPulse{0%{box-shadow:0 0 #1110}35%{box-shadow:0 0 0 6px #1111112e}to{box-shadow:0 0 #1110}}.win-badge{animation:.45s cubic-bezier(.22,1,.36,1) both winBadgeIn}@keyframes winBadgeIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.win-name{animation:.5s cubic-bezier(.22,1,.36,1) .3s both winNameIn}@keyframes winNameIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.win-hands{flex-direction:column;gap:10px;width:100%;max-width:320px;animation:.4s 1.4s both fadeIn;display:flex}.win-hand-row{align-items:center;gap:10px;display:flex}.win-hand-name{color:var(--gray4);letter-spacing:.05em;flex-shrink:0;width:60px;font-size:11px;font-weight:700}.game-summary{background:var(--bg);border:var(--border);border-radius:0;flex-direction:column;gap:8px;width:100%;max-width:280px;padding:12px 16px;animation:.4s 2s both fadeIn;display:flex}.summary-row{color:var(--gray4);justify-content:space-between;font-size:12px;font-weight:600;display:flex}.pass-ring{animation:2.2s ease-in-out infinite passRing}@keyframes passRing{0%,to{transform:scale(1);box-shadow:0 0 #0000}50%{transform:scale(1.03);box-shadow:0 0 0 18px #0000000d}}.pass-name{animation:.5s cubic-bezier(.22,1,.36,1) .1s both passNameIn}@keyframes passNameIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.log-line:last-child{animation:.3s both logSlideUp}@keyframes logSlideUp{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.card.flip-reveal,.card.shake,.card.flash-target,.card.slide-in,.combo-badge,.my-area.turn-pulse,.win-badge,.win-name,.win-hands,.game-summary,.pass-ring,.pass-name,.log-line,.log-line:last-child{transition:none!important;animation:none!important}}.share-row{flex-wrap:wrap;justify-content:flex-start;gap:8px;display:flex}.share-btn{border:2px solid var(--gray2);background:var(--white);color:var(--black);cursor:pointer;border-radius:0;flex:calc(50% - 4px);justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.share-btn:hover{background:var(--gray1);border-color:var(--black)}.share-btn.share-line{color:#fff;background:#06c755;border-color:#06c755}.share-btn.share-line:hover{background:#05b34c}.share-btn.copied{background:var(--black);color:var(--white);border-color:var(--black)}.share-btn.share-qr{flex:100%}.stamp-bar{border-top:2px solid var(--border);scrollbar-width:none;gap:8px;padding:12px 16px;display:flex;overflow-x:auto}.stamp-bar::-webkit-scrollbar{display:none}.stamp-btn{background:var(--gray1);color:var(--black);white-space:nowrap;cursor:pointer;border:2px solid #0000;border-radius:0;flex-shrink:0;padding:8px 16px;font-size:14px;font-weight:700;transition:all .2s cubic-bezier(.22,1,.36,1);box-shadow:0 2px 4px #0000000d}.stamp-btn:hover{background:var(--white);border-color:var(--black);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.stamp-btn:active{transform:scale(.95)!important}.stamp-btn.cooling{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}@keyframes dotPulse{0%,to{opacity:.3;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}.stamp-overlay{pointer-events:none;z-index:1000;position:fixed;inset:0;overflow:hidden}.stamp-item-flow{background:var(--black);color:var(--white);border:1.5px solid var(--white);white-space:nowrap;border-radius:0;padding:12px 24px;font-family:Noto Sans JP,sans-serif;font-size:16px;font-weight:800;animation:3.5s cubic-bezier(.1,.7,.1,1) both stampFlowDown;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px 15px #00000040}.attack-result-overlay{z-index:200;cursor:pointer;background:#0009;justify-content:center;align-items:center;animation:.2s both attackResultBg;display:flex;position:fixed;inset:0}@keyframes attackResultBg{0%{opacity:0}to{opacity:1}}.attack-result-badge{text-align:center;pointer-events:none;border:3px solid;border-radius:4px;flex-direction:column;align-items:center;gap:10px;padding:36px 48px;font-family:Noto Sans JP,sans-serif;animation:.35s cubic-bezier(.22,1,.36,1) both attackResultPop;display:flex}@keyframes attackResultPop{0%{opacity:0;transform:scale(.6)}65%{opacity:1;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.attack-result-badge.correct{color:#28a028;background:#f0fff4;border-color:#28a028}.attack-result-badge.incorrect{color:#e03030;background:#fff4f4;border-color:#e03030}.attack-result-label{letter-spacing:-.02em;font-size:48px;font-weight:900;line-height:1}.attack-result-detail{color:#111;font-size:16px;font-weight:700}.attack-result-hint{color:#888;letter-spacing:.04em;margin-top:4px;font-size:11px;font-weight:500}@keyframes stampFlowDown{0%{opacity:0;top:-100px;transform:translate(-50%)scale(.5)}15%{opacity:1;top:20%;transform:translate(-50%)scale(1.1)}25%{top:22%;transform:translate(-50%)scale(1)}80%{opacity:1;top:80%}to{opacity:0;top:110%}}
