@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Fredoka+One&display=swap";:root{--color-bg:#0f1117;--color-surface:#1a1d2e;--color-surface-2:#252840;--color-border:#ffffff14;--color-blue:#3b82f6;--color-blue-light:#60a5fa;--color-red:#ef4444;--color-red-light:#f87171;--color-purple:#a855f7;--color-gold:#f59e0b;--color-green:#22c55e;--color-yellow:#eab308;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-text-dim:#64748b;--gradient-hero:linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--gradient-blue:linear-gradient(135deg, #2563eb, #60a5fa);--gradient-red:linear-gradient(135deg, #dc2626, #f87171);--gradient-purple:linear-gradient(135deg, #7c3aed, #a855f7);--gradient-gold:linear-gradient(135deg, #d97706, #fcd34d);--gradient-green:linear-gradient(135deg, #16a34a, #4ade80);--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow-blue:0 0 20px #3b82f666;--shadow-glow-purple:0 0 20px #a855f766;--shadow-glow-gold:0 0 20px #f59e0b66;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:28px;--radius-full:9999px;font-family:Noto Sans JP,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100dvh;overflow:hidden}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-family:Noto Sans JP,sans-serif}.btn{border-radius:var(--radius-full);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:700;transition:all .2s;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background:var(--gradient-hero);color:#fff;box-shadow:0 4px 20px #667eea80}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 6px 28px #667eea99}.btn-blue{background:var(--gradient-blue);color:#fff;box-shadow:var(--shadow-glow-blue)}.btn-blue:hover{filter:brightness(1.1)}.btn-green{background:var(--gradient-green);color:#fff}.btn-green:hover{filter:brightness(1.1)}.btn-red{background:var(--gradient-red);color:#fff}.btn-red:hover{filter:brightness(1.1)}.btn-gold{background:var(--gradient-gold);color:#fff}.btn-gold:hover{filter:brightness(1.1)}.btn-ghost{color:var(--color-text-muted);border:1px solid var(--color-border);background:#ffffff0f}.btn-ghost:hover{color:var(--color-text);background:#ffffff1a}.btn-lg{padding:16px 36px;font-size:1.15rem}.btn-sm{padding:8px 16px;font-size:.875rem}.btn-xl{padding:20px 48px;font-size:1.3rem}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9999;background:#000000bf;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:90%;max-width:800px;max-height:90vh;padding:48px;animation:.4s cubic-bezier(.175,.885,.32,1.275) forwards popInModal;overflow-y:auto;box-shadow:0 16px 48px #000c}@keyframes popInModal{0%{opacity:0;transform:scale(.6)translateY(40px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.font-bold{font-weight:700}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-8px)rotate(-8deg)}40%{transform:translate(8px)rotate(8deg)}60%{transform:translate(-6px)rotate(-4deg)}80%{transform:translate(6px)rotate(4deg)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.title-screen{background:radial-gradient(at 20%,#1e1b4b 0%,#0f1117 60%);flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.title-bg-orbs{pointer-events:none;position:absolute;inset:0}.orb{filter:blur(80px);opacity:.25;border-radius:50%;animation:8s ease-in-out infinite orbFloat;position:absolute}.orb-1{background:radial-gradient(circle,#7c3aed,#0000);width:400px;height:400px;animation-delay:0s;top:-100px;left:-100px}.orb-2{background:radial-gradient(circle,#2563eb,#0000);width:350px;height:350px;animation-delay:-3s;bottom:-80px;right:-80px}.orb-3{background:radial-gradient(circle,#db2777,#0000);width:250px;height:250px;animation-delay:-5s;top:50%;left:60%}@keyframes orbFloat{0%,to{transform:translate(0)scale(1)}33%{transform:translate(20px,-30px)scale(1.05)}66%{transform:translate(-15px,20px)scale(.95)}}.title-content{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:24px;padding:0 24px;display:flex;position:relative}.title-badge{color:#c4b5fd;border-radius:var(--radius-full);letter-spacing:.05em;background:#7c3aed33;border:1px solid #7c3aed66;padding:6px 18px;font-size:.85rem;font-weight:500}.title-icon-row{align-items:center;gap:12px;display:flex}.title-icon{font-size:2.5rem;display:inline-block}.bounce-1{animation:1.8s ease-in-out infinite bounce}.bounce-2{animation:1.8s ease-in-out .3s infinite bounce}.bounce-3{animation:1.8s ease-in-out .6s infinite bounce}.title-heading{color:#fff;text-shadow:0 0 40px #a78bfa66;font-family:Noto Sans JP,sans-serif;font-size:clamp(2.5rem,6vw,5rem);font-weight:900;line-height:1.1}.title-accent{background:linear-gradient(135deg,#a78bfa,#f0abfc,#fb923c);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:130%}.title-sub{color:var(--color-text-muted);font-size:1.1rem;font-weight:500}.title-players{border:1px solid var(--color-border);border-radius:var(--radius-full);background:#ffffff0d;align-items:center;gap:4px;padding:10px 20px;font-size:1.1rem;display:flex}.title-players small{color:var(--color-text-muted);margin-left:8px;font-size:.8rem}.title-start-btn{min-width:260px;animation:.6s .5s both popIn}.title-footer{color:var(--color-text-dim);letter-spacing:.05em;font-size:.8rem;position:absolute;bottom:20px}@media (height<=850px){.title-content{gap:16px;transform:scale(.9)}}@media (height<=700px){.title-content{gap:12px;transform:scale(.8)}}@media (height<=600px){.title-content{gap:8px;transform:scale(.7)}}.division-screen{background:var(--color-bg);flex-direction:column;justify-content:center;align-items:center;gap:32px;width:100%;height:100%;padding:32px 24px;display:flex;overflow-y:auto}.division-header{text-align:center}.division-title{color:var(--color-text);margin-bottom:8px;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:900}.division-subtitle{color:var(--color-text-muted);font-size:.95rem}.division-cards{flex-wrap:wrap;justify-content:center;gap:20px;width:100%;max-width:1000px;display:flex}.division-card{border-radius:var(--radius-xl);cursor:pointer;text-align:center;background:var(--color-surface);border:2px solid #0000;flex-direction:column;flex:1;align-items:center;gap:12px;min-width:240px;max-width:300px;padding:28px 24px;transition:all .3s;display:flex;position:relative;overflow:hidden}.division-card:before{content:"";background:var(--card-gradient);opacity:0;transition:opacity .3s;position:absolute;inset:0}.division-card:hover{box-shadow:0 16px 40px var(--card-shadow,#0000004d);border-color:#fff3;transform:translateY(-8px)}.division-card:hover:before{opacity:.12}.division-card:active{transform:scale(.97)translateY(-4px)}.division-card__number{letter-spacing:.1em;color:var(--color-text-muted);text-transform:uppercase;border-radius:var(--radius-full);background:#ffffff0f;padding:3px 10px;font-size:.75rem;font-weight:700;position:relative}.division-card__icon{filter:drop-shadow(0 4px 12px #0000004d);font-size:3.5rem;transition:transform .3s;position:relative}.division-card:hover .division-card__icon{transform:scale(1.15)rotate(-5deg)}.division-card__name{color:var(--color-text);font-size:1.05rem;font-weight:700;line-height:1.4;position:relative}.division-card__desc{color:var(--color-text-muted);font-size:.82rem;line-height:1.6;position:relative}.division-card__arrow{background:var(--card-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.4rem;font-weight:700;transition:transform .3s;position:relative}.division-card:hover .division-card__arrow{transform:translate(6px)}.division-note{color:var(--color-text-dim);text-align:center;max-width:500px;font-size:.8rem;line-height:1.6}.player-setup{background:var(--color-bg);flex-direction:column;align-items:center;gap:20px;width:100%;height:100%;padding:24px 20px 32px;display:flex;overflow-y:auto}.player-setup__header{text-align:center;flex-shrink:0}.player-setup__div-badge{color:#c4b5fd;border-radius:var(--radius-full);background:#7c3aed33;border:1px solid #7c3aed66;max-width:1400px;margin:0 auto;padding:4px 14px;font-size:.8rem;display:inline-block}.player-setup__title{color:#2c3e50;text-align:center;letter-spacing:2px;margin-bottom:2rem;font-size:3rem;font-weight:800}.player-setup__sub{color:var(--color-text-muted);font-size:.9rem}.player-setup__count-selector{text-align:center;flex-shrink:0}.player-setup__count-label{color:var(--color-text-muted);letter-spacing:.05em;margin-bottom:10px;font-size:.82rem;font-weight:700}.player-setup__count-btns{gap:10px;display:flex}.player-setup__count-btn{border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;padding:10px 22px;font-family:Noto Sans JP,sans-serif;font-size:1rem;font-weight:700;transition:all .2s}.player-setup__count-btn:hover{color:var(--color-text);border-color:#7c3aed80}.player-setup__count-btn.active{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border-color:#0000;box-shadow:0 4px 16px #7c3aed66}.player-setup__start-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);border:none;border-radius:100px;align-items:center;gap:1rem;margin:3rem auto 0;padding:1.5rem 4rem;font-size:2.5rem;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 8px 20px #ef44444d}.player-setup__players{flex-flow:wrap;justify-content:center;gap:16px;width:100%;max-width:900px;display:flex}.player-setup__player-card{background:#fff;border:2px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:1.5rem;min-width:380px;padding:1.5rem;transition:all .3s;display:flex;box-shadow:0 8px 24px #0000000f}.player-setup__card-header{flex-direction:column;gap:8px;display:flex}.player-setup__color-badge{color:#fff;border-radius:var(--radius-full);letter-spacing:.04em;align-self:flex-start;padding:4px 14px;font-size:.9rem;font-weight:800;display:inline-block}.player-setup__input{color:#1e293b;background-color:#f8fafc;border:2px solid #cbd5e1;border-radius:12px;width:100%;padding:1rem 1.2rem;font-size:1.8rem;font-weight:700;transition:all .2s}.player-setup__avatar-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.player-setup__avatar-btn{cursor:pointer;background:#f8fafc;border:2px solid #cbd5e1;border-radius:16px;flex-direction:column;align-items:center;gap:.8rem;padding:1rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.player-setup__avatar-btn:hover{border-color:color-mix(in srgb, var(--p-color) 60%, transparent);background:color-mix(in srgb, var(--p-color) 10%, transparent);transform:translateY(-2px)}.player-setup__avatar-btn.selected{border-color:var(--p-color);background:color-mix(in srgb, var(--p-color) 18%, transparent);box-shadow:0 0 12px color-mix(in srgb, var(--p-color) 40%, transparent)}.player-setup__avatar-img{object-fit:contain;width:100px;height:100px;transition:transform .3s}.player-setup__avatar-emoji{font-size:4rem;line-height:1}.player-setup__avatar-label{color:#64748b;font-size:1.2rem;font-weight:700;transition:color .2s}.player-setup__check-icon{color:#fff;background:#ef4444;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;font-weight:700;animation:.3s cubic-bezier(.175,.885,.32,1.275) scaleIn;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 2px 8px #ef444466}.player-setup__actions{flex-shrink:0;gap:12px;display:flex}.game-screen{background:linear-gradient(135deg,#e0f2fe 0%,#bae6fd 100%);flex-direction:column;width:100%;height:100%;font-family:"M PLUS Rounded 1c",Noto Sans JP,sans-serif;display:flex;overflow:hidden}.game-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff9;border-bottom:4px solid #fffc;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:8px 24px;display:flex;box-shadow:0 4px 12px #0000000d}.game-header__left{flex-direction:column;gap:2px;min-width:0;max-width:240px;display:flex}.game-header__div-badge{color:#854d0e;border-radius:var(--radius-full);letter-spacing:.05em;background:#fde047;border:2px solid #ca8a04;width:fit-content;padding:2px 12px;font-size:.75rem;font-weight:900;display:inline-block;box-shadow:0 2px #ca8a04}.game-header__div-name{color:#451a03;white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:.85rem;font-weight:800;overflow:hidden}.game-header__current{border:4px solid color-mix(in srgb, var(--p-color) 60%, #e5e7eb);max-width:420px;box-shadow:0 4px 12px #0000001a, 0 4px 0 color-mix(in srgb, var(--p-color) 30%, #e5e7eb);background:#fff;border-radius:40px;flex:1;justify-content:center;align-items:center;gap:12px;padding:6px 24px;animation:.3s cubic-bezier(.34,1.56,.64,1) popIn;display:flex;transform:translateY(-2px)}.game-header__current-avatar-wrap{border:3px solid var(--p-color);background:#f3f4f6;border-radius:50%;flex-shrink:0;width:48px;height:48px;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a}.game-header__current-avatar{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.game-header__current-info{flex-direction:column;gap:0;display:flex}.game-header__current-label{color:#9ca3af;letter-spacing:.06em;font-size:.7rem;font-weight:800}.game-header__current-name{color:#1f2937;white-space:nowrap;font-size:1.25rem;font-weight:900}.game-header__turn-badge{color:#fff;background:#f87171;border:2px solid #dc2626;border-radius:12px;margin-left:8px;padding:4px 10px;font-size:.8rem;font-weight:900;box-shadow:0 2px #dc2626}.game-header__right{text-align:right;background:#fff;border:3px solid #fcd34d;border-radius:20px;flex-shrink:0;min-width:100px;padding:8px 16px;box-shadow:0 4px #fbbf24}.game-header__team-pts{justify-content:center;align-items:baseline;gap:4px;display:flex}.game-header__team-pts-label{color:#d97706;font-size:.7rem;font-weight:900}.game-header__team-pts-value{color:#d97706;font-size:1.8rem;font-weight:900;line-height:1}.game-header__team-pts-unit{color:#d97706;font-size:.9rem;font-weight:900}.game-main{flex:1;gap:16px;min-height:0;padding:16px 20px 20px;display:flex;overflow:hidden}.game-board-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.game-side{flex-direction:column;flex-shrink:0;gap:16px;width:320px;padding-right:4px;display:flex;overflow:hidden auto}.game-dice-card{background:#fef3c7;border:8px solid #b45309;border-radius:24px;flex-direction:column;flex-shrink:0;align-items:center;gap:12px;padding:20px 16px;display:flex;position:relative;box-shadow:inset 0 0 16px #8b451333,0 8px 16px #00000026}.game-dice-card:before{content:"";background:#0000000d;border-radius:12px 12px 0 0;height:16px;position:absolute;top:0;left:0;right:0}.game-dice-card__title{color:#78350f;letter-spacing:.05em;z-index:1;background:#fff;border:2px solid #b45309;border-radius:16px;padding:4px 16px;font-size:.9rem;font-weight:900;box-shadow:0 2px #b45309}.game-move-btn{border-radius:16px;width:100%;padding:12px;font-family:inherit;font-size:1.1rem;animation:1s infinite pulse}.team-award{text-align:center;color:#451a03;background:#fff;border:6px solid #fcd34d;border-radius:32px;flex-direction:column;align-items:center;gap:16px;padding:40px;display:flex}.team-award__icon{letter-spacing:8px;font-size:4rem;animation:.5s infinite bounce}.team-award__text{color:#d97706;font-size:2.5rem;font-weight:900;line-height:1.3}.board-scroll-wrapper{scrollbar-width:thin;scrollbar-color:#fbbf24 #fef3c7;background:linear-gradient(#87ceeb 0%,#e0f2fe 40%,#dcfce7 40%,#86efac 100%);border:8px solid #fef3c7;border-radius:24px;flex:1;position:relative;overflow:auto hidden;box-shadow:0 12px 24px #00000026,inset 0 0 20px #0000001a}.board-scroll-wrapper::-webkit-scrollbar{height:16px}.board-scroll-wrapper::-webkit-scrollbar-track{background:#fef3c7;border-radius:8px}.board-scroll-wrapper::-webkit-scrollbar-thumb{background-color:#fbbf24;border:3px solid #fef3c7;border-radius:8px}.board-world{height:700px;min-height:100%;position:relative}.board-bg-mountains{opacity:.8;z-index:1;background-image:radial-gradient(circle at 100px 200px,#a7f3d0 200px,#0000 201px),radial-gradient(circle at 400px 220px,#6ee7b7 220px,#0000 221px),radial-gradient(circle at 800px 250px,#34d399 250px,#0000 251px);background-repeat:repeat-x;background-size:1000px 300px;height:200px;position:absolute;top:30%;left:-100px;right:-100px}.board-bg-clouds{opacity:.9;z-index:1;background-image:radial-gradient(circle at 50px 50px,#fff 50px,#0000 51px),radial-gradient(circle at 120px 60px,#fff 60px,#0000 61px),radial-gradient(circle at 90px 30px,#fff 40px,#0000 41px);background-repeat:repeat-x;background-size:400px 100px;height:100px;position:absolute;top:10%;left:0;right:0}.board-path-svg{z-index:2;pointer-events:none;position:absolute;top:0;left:0}.board-path-line{fill:none;stroke:#fef08a;stroke-width:80px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 6px #d97706);opacity:.9}.board-square{z-index:10;background:radial-gradient(circle at 30% 30%, #fff 0%, var(--sq-color) 40%, color-mix(in srgb, var(--sq-color) 60%, #000) 100%);width:140px;height:140px;box-shadow:0 12px 0 color-mix(in srgb, var(--sq-color) 40%, #78350f), 0 16px 16px #0000004d;cursor:default;border:6px solid #fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute}.board-square--start{border:8px solid #fff;width:160px;height:160px}.board-square--goal{border:8px solid #fff;width:180px;height:180px;animation:3s ease-in-out infinite floatBounce}.board-square.current{z-index:15;box-shadow:0 12px 0 color-mix(in srgb, var(--sq-color) 40%, #78350f), 0 0 0 8px #ef444480, 0 20px 24px #0006}.board-square.moving{cursor:pointer;z-index:20;animation:.8s infinite alternate moveBounce}@keyframes moveBounce{0%{transform:translate(-50%, -50%) rotate(var(--rot,0deg)) translateY(0)}to{transform:translate(-50%, -50%) rotate(var(--rot,0deg)) translateY(-15px)}}@keyframes floatBounce{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-10px)}}.board-square__num-tag{color:#78350f;z-index:2;background:#fcd34d;border:3px solid #b45309;border-radius:12px;padding:4px 10px;font-size:1rem;font-weight:900;position:absolute;top:-15px;left:-5px;transform:rotate(-10deg);box-shadow:0 4px #b45309}.board-square__content{flex-direction:column;align-items:center;gap:4px;display:flex}.board-square__icon{filter:drop-shadow(0 4px 4px #0000004d);font-size:2.5rem;line-height:1}.board-square__name{color:#451a03;text-align:center;background:#ffffffd9;border:2px solid #fff;border-radius:12px;padding:2px 12px;font-size:.9rem;font-weight:900;box-shadow:0 2px 4px #0003}.board-piece-absolute{width:60px;height:90px;box-shadow:0 8px 16px #00000080, 0 0 0 3px var(--p-color);background:color-mix(in srgb, var(--p-color) 20%, #fff);transform-origin:bottom;border:4px solid #fff;border-radius:12px;transition:left .4s ease-in-out,top .4s ease-in-out,transform .3s;position:absolute;overflow:visible;transform:translate(-50%,-90%)}.board-piece-absolute--active{border-width:6px;width:80px;height:120px;animation:1.5s ease-in-out infinite playerBounceAbs;box-shadow:0 16px 32px #0009,0 0 0 4px #fbbf24}@keyframes playerBounceAbs{0%,to{transform:translate(-50%,-90%)translateY(-10px)}50%{transform:translate(-50%,-90%)translateY(-20px)}}.board-piece__img{object-fit:cover;object-position:top center;border-radius:8px;width:100%;height:100%;display:block}.board-piece__arrow{color:#ef4444;filter:drop-shadow(0 2px 2px #fff);font-size:2rem;animation:1s infinite alternate arrowBlink;position:absolute;top:-30px;left:50%;transform:translate(-50%)}@keyframes arrowBlink{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:.5;transform:translate(-50%)translateY(10px)}}.board-square__move-overlay{color:#fff;text-shadow:0 2px 6px #000c,-2px -2px #b45309,2px -2px #b45309,-2px 2px #b45309,2px 2px #b45309;z-index:50;pointer-events:none;background:#fbbf2499;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;font-weight:900;display:flex;position:absolute;inset:-6px}.dice-panel{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.dice-body{cursor:pointer;filter:drop-shadow(0 8px 16px #0003);background:#fff;border-radius:32px;outline:none;width:160px;height:160px;transition:transform .15s,box-shadow .15s;box-shadow:inset -4px -8px 12px #0000001a,inset 4px 8px 12px #fff}.dice-body:hover:not(.dice-body--disabled){filter:drop-shadow(0 12px 20px #00000040);transform:scale(1.05)rotate(-3deg)}.dice-body:active:not(.dice-body--disabled){filter:drop-shadow(0 4px 8px #00000026);transform:scale(.96)translateY(4px)}.dice-body--rolling{cursor:default;filter:drop-shadow(0 0 24px #fbbf2499)}.dice-body--landed{animation:.5s cubic-bezier(.34,1.56,.64,1) diceLand}.dice-body--disabled{cursor:not-allowed;opacity:.6;filter:drop-shadow(0 4px 8px #0000001a)}.dice-svg{border-radius:inherit;width:100%;height:100%;display:block}.dice-svg rect{fill:#0000;stroke:#e5e7eb;stroke-width:2px}.dice-svg circle{fill:#1f2937}.dice-svg.rolling{animation:.12s infinite diceShake}.dice-svg.rolling circle{fill:#b45309}.dice-result{background:#fff;border:3px solid #fcd34d;border-radius:20px;align-items:baseline;gap:6px;padding:4px 16px;animation:.5s cubic-bezier(.34,1.56,.64,1) popIn;display:flex;box-shadow:0 4px #fbbf24}.dice-result__num{color:#d97706;font-size:2.5rem;font-weight:900;line-height:1}.dice-result__label{color:#78350f;font-size:1.1rem;font-weight:900}.dice-hint{color:#78350f;text-align:center;background:#ffffffb3;border-radius:16px;padding:4px 16px;font-size:.9rem;font-weight:900}@keyframes diceShake{0%{transform:rotate(-8deg)scale(1.05)}25%{transform:rotate(8deg)scale(1.08)}50%{transform:rotate(-6deg)scale(1.04)}75%{transform:rotate(6deg)scale(1.07)}to{transform:rotate(-8deg)scale(1.05)}}@keyframes diceLand{0%{transform:scale(1.3)rotate(-15deg)}40%{transform:scale(.9)rotate(5deg)}70%{transform:scale(1.1)rotate(-3deg)}to{transform:scale(1)rotate(0)}}.scoreboard{background:#fdf6e3;border:6px solid #b45309;border-radius:24px;flex-direction:column;gap:12px;height:100%;padding:16px;display:flex;box-shadow:inset 0 0 16px #8b45131a,0 8px 16px #0000001a}.scoreboard__team{text-align:center;background:#fff;border:3px solid #fcd34d;border-radius:16px;flex-shrink:0;padding:10px 12px;box-shadow:0 4px #fcd34d}.scoreboard__team-label{color:#d97706;letter-spacing:.05em;margin-bottom:2px;font-size:.8rem;font-weight:900}.scoreboard__team-pts{color:#d97706;font-size:2.2rem;font-weight:900;line-height:1}.scoreboard__team-pts span{margin-left:3px;font-size:1rem}.scoreboard__players{flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.scoreboard__player{background:#fff;border:3px solid #e5e7eb;border-radius:16px;align-items:center;gap:10px;padding:8px 12px;transition:all .3s;display:flex;box-shadow:0 2px 4px #0000000d}.scoreboard__player.active{border-color:var(--p-color,#7c3aed);background:color-mix(in srgb, var(--p-color,#7c3aed) 10%, #fff);box-shadow:0 4px 0 var(--p-color,#7c3aed), 0 4px 8px #0000001a;transform:translateY(-2px)}.scoreboard__avatar-wrap{border:3px solid var(--p-color);background:#f3f4f6;border-radius:8px;flex-shrink:0;width:48px;height:60px;position:relative;overflow:visible;box-shadow:inset 0 2px 4px #0000001a}.scoreboard__avatar-img{object-fit:cover;object-position:top center;border-radius:4px;width:100%;height:100%;display:block}.scoreboard__avatar-crown{filter:drop-shadow(0 2px 4px #0000004d);font-size:1.2rem;animation:1s infinite bounce;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.scoreboard__player-info{flex:1;min-width:0}.scoreboard__player-name{color:#1f2937;white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:900;overflow:hidden}.scoreboard__player-sub{color:#6b7280;margin-top:2px;font-size:.65rem;font-weight:700}.scoreboard__player-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.scoreboard__player-pts{color:var(--p-color,#1f2937);font-size:1.4rem;font-weight:900;line-height:1}.scoreboard__player-pts span{margin-left:2px;font-size:.7rem}.scoreboard__bonus-btn{color:#d97706;cursor:pointer;white-space:nowrap;background:#fff;border:2px solid #fcd34d;border-radius:12px;padding:4px 8px;font-family:inherit;font-size:.75rem;font-weight:900;transition:all .2s;box-shadow:0 2px #fcd34d}.scoreboard__bonus-btn:hover{background:#fef3c7;transform:translateY(1px);box-shadow:0 1px #fcd34d}.scoreboard__controls{flex-shrink:0;gap:8px;margin-top:4px;display:flex}.scoreboard__controls .btn{border-radius:12px;flex:1;padding:8px;font-size:.85rem}.event-modal{text-align:center;flex-direction:column;align-items:center;gap:18px;display:flex}.event-modal__badge{border-radius:var(--radius-full);letter-spacing:.1em;box-shadow:var(--shadow-sm);padding:8px 24px;font-size:1.2rem;font-weight:900}.event-modal__badge--blue{color:var(--color-blue-light);background:#3b82f633;border:1px solid #3b82f666}.event-modal__badge--red{color:var(--color-red-light);background:#ef444433;border:1px solid #ef444466}.event-modal__badge--mission{color:#c4b5fd;background:#a855f733;border:1px solid #a855f766}.event-modal__badge--random{color:var(--color-gold);background:#f59e0b33;border:1px solid #f59e0b66}.event-modal__badge--minigame{color:#c4b5fd;background:linear-gradient(135deg,#667eea33,#f0abfc33);border:1px solid #a78bfa66}.event-modal__player{border-radius:var(--radius-xl);background:#0003;border:2px solid #ffffff1a;align-items:center;gap:16px;padding:12px 32px;font-size:2rem;font-weight:900;display:flex}.event-modal__task{color:var(--color-text);text-shadow:1px 1px 4px #00000080;max-width:680px;margin:16px 0;font-size:1.8rem;font-weight:900;line-height:1.5}.event-modal__pts{color:var(--color-red-light);font-size:1.5rem;font-weight:900}.event-modal__pts--big{color:var(--color-gold);text-shadow:0 0 16px #f59e0b99;font-size:2rem}.event-modal__challenge-prompt{color:var(--color-text-muted);border-radius:var(--radius-lg);border:3px dashed #fff3;font-size:1.4rem;font-weight:700;padding:24px!important}.event-modal__assist{border-radius:var(--radius-md);background:#3b82f614;border:1px solid #3b82f633;width:100%;padding:16px}.event-modal__assist-title{color:var(--color-blue-light);margin-bottom:10px;font-size:.85rem;font-weight:700}.event-modal__choices,.event-modal__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.event-modal--red .event-modal__task{color:var(--color-red-light)}.event-modal__note-area{width:100%}.event-modal__note-label{color:var(--color-text-muted);text-align:left;margin-bottom:6px;font-size:.8rem;font-weight:700;display:block}.event-modal__note-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);resize:none;background:#ffffff0d;outline:none;padding:10px 12px;font-family:Noto Sans JP,sans-serif;font-size:.9rem;transition:border-color .2s}.event-modal__note-input:focus{border-color:#a855f780}.event-modal__random-icon{font-size:4rem;animation:1s infinite bounce}.event-modal__random-name{color:var(--color-gold);font-size:1.3rem;font-weight:900}.event-modal__target-selector{width:100%}.event-modal__target-label{color:var(--color-text-muted);margin-bottom:10px;font-size:.85rem}.event-modal__target-btns{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.event-modal__target-btn{border-radius:var(--radius-md);border:2px solid var(--p-color,#fff3);background:color-mix(in srgb, var(--p-color,#fff) 10%, transparent);color:var(--color-text);cursor:pointer;padding:10px 18px;font-family:Noto Sans JP,sans-serif;font-size:.95rem;font-weight:700;transition:all .2s}.event-modal__target-btn:hover,.event-modal__target-btn.selected{background:color-mix(in srgb, var(--p-color,#fff) 25%, transparent);transform:scale(1.05)}.event-modal--goal{background:linear-gradient(135deg,#1a1500,#1a1d2e);border-color:#f59e0b66}.event-modal__confetti{letter-spacing:8px;font-size:2rem;animation:.5s infinite bounce}.event-modal__goal-icon{filter:drop-shadow(0 0 20px #f59e0bcc);font-size:5rem;animation:.5s popIn}.event-modal__goal-text{background:var(--gradient-gold);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:900}.event-modal__minigame-type{color:var(--color-text-muted);letter-spacing:.1em;font-size:1.2rem;font-weight:900}.event-modal__minigame-name{background:var(--gradient-hero);-webkit-text-fill-color:transparent;text-shadow:0 4px 16px #667eea66;-webkit-background-clip:text;background-clip:text;font-size:2.8rem;font-weight:900}.summary{background:var(--color-bg);flex-direction:column;align-items:center;gap:28px;width:100%;height:100%;padding:32px 24px;display:flex;overflow-y:auto}.summary__header{text-align:center}.summary__confetti{letter-spacing:8px;font-size:2.5rem;animation:1s infinite bounce}.summary__title{background:var(--gradient-gold);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:8px 0;font-size:clamp(2rem,4vw,3rem);font-weight:900}.summary__meta{color:var(--color-text-muted);font-size:.95rem}.summary__section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:700px;padding:20px}.summary__section-title{color:var(--color-text);border-bottom:1px solid var(--color-border);margin-bottom:14px;padding-bottom:10px;font-size:1rem;font-weight:700}.summary__ranking{flex-direction:column;gap:10px;display:flex}.summary__rank-row{border-radius:var(--radius-md);background:#ffffff08;border:1px solid #0000;align-items:center;gap:12px;padding:12px;display:flex}.summary__rank-row.gold{background:#f59e0b0f;border-color:#f59e0b66}.summary__rank-row.silver{border-color:#cbd5e14d}.summary__rank-row.bronze{border-color:#b478504d}.summary__rank-num{font-size:1.3rem}.summary__rank-emoji{font-size:1.5rem}.summary__rank-name{flex:1;font-size:1rem;font-weight:700}.summary__rank-pts{color:var(--color-gold);font-size:1.5rem;font-weight:900}.summary__rank-pts span{font-size:.75rem}.summary__rank-detail{color:var(--color-text-dim);white-space:nowrap;font-size:.7rem}.summary__tasks{flex-direction:column;gap:6px;max-height:250px;display:flex;overflow-y:auto}.summary__task-row{border-radius:var(--radius-sm);border-left:3px solid var(--color-blue);background:#3b82f60f;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.summary__task-player{color:var(--color-blue-light);white-space:nowrap;flex-shrink:0;font-size:.75rem;font-weight:700}.summary__task-text{color:var(--color-text);flex:1;font-size:.82rem}.summary__task-turn{color:var(--color-text-dim);flex-shrink:0;font-size:.7rem}.summary__photos{flex-wrap:wrap;gap:8px;display:flex}.summary__photo{object-fit:cover;border-radius:var(--radius-sm);border:2px solid var(--color-border);width:140px;height:105px;box-shadow:var(--shadow-sm)}.summary__notes{flex-direction:column;gap:6px;max-height:160px;display:flex;overflow-y:auto}.summary__note-row{border-radius:var(--radius-sm);border-left:3px solid var(--color-purple);background:#a855f70f;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.summary__note-player{color:#c4b5fd;white-space:nowrap;flex-shrink:0;font-size:.75rem;font-weight:700}.summary__note-text{color:var(--color-text);flex:1;font-size:.82rem}.summary__note-turn{color:var(--color-text-dim);flex-shrink:0;font-size:.7rem}.summary__actions{flex-wrap:wrap;justify-content:center;gap:14px;padding-bottom:20px;display:flex}@media print{html,body,#root,.summary{color:#000!important;background:#fff!important;height:auto!important;padding:0!important;overflow:visible!important}.summary{gap:16px}.summary__tasks,.summary__notes{page-break-inside:auto;max-height:none!important;overflow:visible!important}.summary__task-row,.summary__note-row{page-break-inside:avoid;border-bottom:1px solid #eee;background:0 0!important;border-left:3px solid #666!important}.summary__section{page-break-inside:avoid;margin-bottom:20px;box-shadow:none!important;background:0 0!important;border:1px solid #ccc!important}.summary__section-title{color:#000!important;border-bottom:2px solid #333!important}.summary__title,.summary__rank-pts{-webkit-text-fill-color:black!important;color:#000!important;background:0 0!important}.summary__task-text,.summary__task-player,.summary__note-text,.summary__note-player{color:#000!important}.summary__actions{display:none!important}.summary__photo{page-break-inside:avoid;border:1px solid #ccc;width:200px;height:150px}}.teacher-guide{color:#1e293b;background-color:#f8fafc;width:100%;height:100vh;padding:2rem;overflow-y:auto}.teacher-guide__header{border-bottom:2px solid #e2e8f0;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto 2rem;padding-bottom:1rem;display:flex}.teacher-guide__header h2{color:#0f172a;font-size:2rem;font-weight:800}.teacher-guide__content{max-width:1200px;margin:0 auto;padding-bottom:4rem}.guide-overview{flex-direction:column;gap:1.5rem;margin-bottom:3rem;display:flex}.guide-overview__box{background:#fff;border-left:6px solid #3b82f6;border-radius:12px;padding:1.5rem 2rem;box-shadow:0 4px 6px #0000000d}.guide-overview__box--result{border-left:6px solid #f59e0b}.guide-overview__box h3{color:#0f172a;margin-bottom:1rem;font-size:1.4rem;font-weight:800}.guide-overview__box p{color:#334155;margin-bottom:1rem;font-size:1.1rem;line-height:1.6}.guide-overview__box ul{flex-direction:column;gap:1.2rem;margin:0;padding:0;list-style:none;display:flex}.guide-overview__box li{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.5rem}.guide-overview__box li strong{color:#1e293b;margin-bottom:.3rem;font-size:1.1rem;display:block}.guide-overview__box li em{color:#059669;border-left:3px solid #34d399;margin-top:.5rem;padding-left:1rem;font-size:.95rem;font-style:normal;font-weight:700;display:block}.guide-section-main-title{color:#0f172a;text-align:center;margin:4rem 0 2rem;font-size:1.8rem;font-weight:800;position:relative}.guide-section-main-title:after{content:"";background:#94a3b8;border-radius:2px;width:60px;height:4px;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.guide-section{background:#fff;border-radius:16px;margin-bottom:3rem;padding:2rem;box-shadow:0 8px 24px #0000000f}.guide-section--div1{border-top:8px solid #3b82f6}.guide-section--div2{border-top:8px solid #8b5cf6}.guide-section--div3{border-top:8px solid #22c55e}.guide-section__title{align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:1.8rem;font-weight:800;display:flex}.guide-section__badge{color:#475569;background:#f1f5f9;border-radius:100px;padding:.4rem 1rem;font-size:1rem;font-weight:700}.guide-section__goal{background:#f8fafc;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.guide-section__goal strong{color:#0f172a;margin-bottom:.5rem;font-size:1.2rem;display:block}.guide-section__goal p{color:#334155;margin:0;font-size:1.1rem}.guide-grid{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.guide-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:1.5rem}.guide-card--full{grid-column:1/-1}.guide-card__title{color:#1e293b;border-bottom:2px solid #cbd5e1;margin-bottom:.5rem;padding-bottom:.5rem;font-size:1.3rem;font-weight:700}.guide-card__desc{color:#64748b;margin-bottom:1rem;font-size:.9rem}.guide-grid-columns{grid-template-columns:1fr 1fr;gap:2rem;display:grid}.guide-list{flex-direction:column;gap:.8rem;margin:0;padding:0;list-style:none;display:flex}.guide-list li{color:#334155;padding-left:1.5rem;font-size:1.05rem;line-height:1.4;position:relative}.guide-list li:before{content:"•";color:#94a3b8;font-weight:700;position:absolute;left:0}.mg-type{color:#475569;background:#e2e8f0;border-radius:4px;margin-right:.5rem;padding:.2rem .6rem;font-size:.8rem;font-weight:700;display:inline-block}.guide-list p{color:#64748b;margin:.2rem 0 0;padding-left:.5rem;font-size:.9rem}
