@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&display=swap");@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap");*{box-sizing:border-box}body{margin:0;background:#f8f5ed;color:#253e39;font-family:DM Sans,sans-serif}main{max-width:1480px;margin:auto;padding:0 5%}header{height:100px;border-bottom:1px solid #dfdfd2;justify-content:space-between;gap:20px}.brand,header{display:flex;align-items:center}.brand{text-decoration:none;color:#224b42;gap:10px;font-size:35px}.brand span{font-size:11px;letter-spacing:3px}.brand b{display:block;font-size:19px;letter-spacing:4px}.eyebrow,.tag{font-size:10px;letter-spacing:2px;font-weight:700;color:#7a8a76}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:7px;padding:13px 16px;font-weight:600;color:#31594f;background:#e7ecdf}button:disabled{opacity:.45;cursor:default}button:hover:not(:disabled){filter:brightness(.95)}button:focus-visible,input:focus-visible{outline:3px solid #dcac4f;outline-offset:3px}.ghost{background:transparent;border:1px solid #d9ded0;font-size:12px}.intro{display:flex;justify-content:space-between;align-items:center;padding:38px 0 27px;gap:20px}h1{font:400 36px Libre Baskerville,Georgia;margin:12px 0}p{font-size:13px;line-height:1.7;color:#78867c}.intro p{margin:0}.online{font-size:11px;background:#e8eddf;color:#527657;padding:9px 14px;border-radius:30px;white-space:nowrap}.layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:26px}.map-panel{align-self:start;border-radius:12px;overflow:hidden;border:1px solid #d9dfcf;background:#fffdf6;box-shadow:0 6px 24px #233d3810}.map-top{padding:18px 22px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1.5px;font-weight:700}.map-top span+span{color:#8d9886;font-size:8px}.map{background:#165d68}.map svg{display:block;width:100%;height:auto}.legend{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 20px;font-size:10px;color:#7c8372}.text{background:none;padding:4px;font-size:11px}.card{border:1px solid #e0e2d5;background:#fffdf7;padding:26px;border-radius:12px}h2{font:400 28px Libre Baskerville,Georgia;margin:15px 0}.card p{font-size:12px}.card label{display:block;font-size:11px;font-weight:700;margin:24px 0 14px}input{display:block;width:100%;min-width:0;padding:13px 12px;border:1px solid #dce0d3;background:#fbfaf4;border-radius:6px;font-size:12px;margin-top:8px;color:#244d44}.primary{width:100%;background:#264f43;color:#fff9e5;padding:15px;box-shadow:0 3px 0 #183c30}.divider{display:flex;align-items:center;gap:12px;color:#929887;font-size:10px;margin:25px 0}.divider:after,.divider:before{content:"";height:1px;background:#e6e6dc;flex:1 1}.join{display:flex;gap:7px;align-items:end}.join button{font-size:11px;white-space:nowrap}.card small{display:block;font-size:10px;color:#88907e;margin-top:10px}.demo{width:100%;margin-top:15px;background:#eee8d9;font-size:11px;padding:18px;text-align:left}.demo span{float:right}.aside-note{text-align:center;font-size:11px;line-height:1.8;margin:23px}.room{display:flex;align-items:center;justify-content:space-between}.room h2{font:700 22px DM Sans;letter-spacing:3px}.room button{font-size:9px;padding:8px}.player{display:flex;align-items:center;gap:10px;padding:12px 7px;border-bottom:1px solid #ececdf}.player>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%}.player b{font-size:12px}.player small{margin-top:4px}.player.active{background:#edf0e3;border-radius:6px}.player em{margin-left:auto;font-size:8px;color:#497653}.dice{color:#b18b3e;font-size:90px;line-height:1.1;margin:15px}.dice,.turn{text-align:center}.exit{display:block;margin:16px auto 0}.journal{margin-top:15px;padding:22px}.journal p{border-bottom:1px solid #e9e8dd;padding-bottom:10px;font-size:11px}.error{background:#ffe5dc;padding:15px;font-size:12px;border-radius:7px;margin-top:10px}.overlay{position:fixed;inset:0;background:#17392dd9;display:grid;place-items:center;padding:20px;z-index:10}.rules{width:min(580px,100%);max-height:90vh;overflow:auto}.close{float:right}.rules p{font-size:13px}.rolling{animation:shake .15s infinite}@keyframes shake{50%{transform:rotate(15deg)}}footer{border-top:1px solid #dedfd3;margin-top:38px;padding:25px 0;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;color:#8a9584}footer span:first-child{font-weight:700;color:#4e6b56}@media(min-width:1500px){.map svg{max-height:680px}}@media(max-width:1000px){main{padding:0 4%}.layout{grid-template-columns:minmax(0,1fr) 290px;gap:15px}.card{padding:20px}.tag{display:none}h1{font-size:28px}.map-top span+span{display:none}.legend{flex-wrap:wrap;padding:12px}}@media(max-width:760px){header{height:77px}.intro{display:block;padding:25px 0}.intro .online{display:inline-block;margin-top:16px}h1{font-size:26px;line-height:1.4}.layout{grid-template-columns:1fr}.map-panel{border-radius:8px}aside{display:flex;flex-direction:column}.card{padding:24px}.aside-note{margin:16px}footer{gap:15px;flex-wrap:wrap}.map-top{padding:14px}.legend{font-size:10px}.intro p{font-size:12px}}body{background:#091b29;color:#e7eff7;font-family:Outfit,DM Sans,sans-serif;background-image:radial-gradient(ellipse at 20% 0,#153d50 0,transparent 60%)}main{max-width:1500px;padding:0 4%}header{height:88px;border-color:#ffffff14}.brand{color:#ffcb66}.brand span{font-family:Outfit,sans-serif;font-weight:800}.brand b{font-size:21px}.tag{color:#839eb2;letter-spacing:3px}.ghost{border-color:#ffffff23;color:#b6cbd8;background:#ffffff06}.hero{height:430px;margin-top:25px;position:relative;border-radius:25px;overflow:hidden;background:linear-gradient(120deg,#12394a,#0c697c);box-shadow:0 25px 60px #0004;border:1px solid #ffffff15}.hero>img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.hero:after,.hero>img{position:absolute;inset:0}.hero:after{content:"";background:linear-gradient(90deg,#071d35ed,#0b2a3ab8 33%,transparent 67%)}.hero-copy{position:relative;z-index:1;padding:40px 45px}.season{display:inline-block;font-size:9px;font-weight:700;letter-spacing:2px;color:#ffdc84;background:#081e2d80;border:1px solid #ffdb7c44;border-radius:20px;padding:9px 13px}.hero h1{font-family:Outfit,sans-serif;font-weight:900;letter-spacing:-2px;font-size:62px;line-height:1.03;color:#fff;margin:20px 0 13px;text-shadow:0 4px 24px #0005}.hero p{color:#d3e8ed;font-size:14px;line-height:1.6}.hero button{background:linear-gradient(#ffdb7a,#f7ac3d);color:#523313;border-bottom:3px solid #bc762a;padding:14px 23px;border-radius:10px;box-shadow:0 7px 20px #0003}.hero-chips{display:flex;gap:16px;font-size:10px;color:#d3e8ed;margin-top:20px}.intro{padding:32px 0 23px}.intro h1{font-family:Outfit;font-size:27px;font-weight:700;letter-spacing:-.5px;margin:9px 0}.eyebrow{color:#edba61;font-size:9px;letter-spacing:2px}.intro p{color:#88a4b7}.online{color:#8cdec0;background:#102f33;border:1px solid #25554e}.map-panel{border-color:#375166;background:#102a3c;box-shadow:0 18px 45px #0003;border-radius:18px}.map-top{background:#123346;color:#c4dae5;padding:20px 24px}.map-top span+span{color:#6cabb6}.map{padding:8px;background:#107d91}.map svg{border-radius:9px;filter:saturate(1.15)}.legend{color:#a9c6d4;padding:16px 22px}.text{color:#eac476}.card{background:linear-gradient(145deg,#17364b,#102638);border-color:#314b5e;border-radius:18px;box-shadow:0 15px 40px #0002;padding:25px}h2{font-family:Outfit;font-weight:800;color:#fff;font-size:29px}.card p{color:#98b1c2}.card label{color:#c4d4df}input{background:#0b2031;border:1px solid #365064;color:#fff;padding:14px;border-radius:9px}input::placeholder{color:#638294}.primary{background:linear-gradient(#ffda79,#f1ae45);color:#4d3218;border-radius:10px;border-bottom:3px solid #a96c26;box-shadow:0 5px 20px #0002;font-weight:800}.join button{background:#28536c;color:#ddf0fa;border:1px solid #3d6b82}.divider{color:#7694a8;margin:20px 0}.divider:after,.divider:before{background:#365064}.card small{color:#809eb1}.demo{background:#153549;color:#c9dfec;border:1px solid #375468;border-radius:12px;font-size:12px}.aside-note{color:#6d8b9f}.player{border-color:#375163}.player.active{background:#2c4b55;box-shadow:inset 3px 0 #ffc86a}.player b{color:#e4eef5}.player em{color:#f3ce79}.dice{color:#ffcc6b;text-shadow:0 7px 18px #0005}.journal p{border-color:#2c475a}.piece-picker{margin:20px 0 0}.piece-picker>span{font-size:9px;font-weight:600;color:#91adbd;letter-spacing:1.3px}.piece-picker>div{display:flex;gap:8px;margin-top:10px}.piece-picker button{flex:1 1;min-width:0;height:58px;padding:4px;background:#0b2234;border:1px solid #355266;border-radius:12px;transition:transform .2s,background .2s}.piece-picker button span{font-size:30px;filter:drop-shadow(0 3px 3px #0006);display:block}.piece-picker button.chosen{background:#3a4e4a;border:2px solid #ffd178;box-shadow:0 0 15px #f7b54420;transform:translateY(-3px)}.piece-picker small{font-size:10px;text-align:center;color:#f3cd82}.error{background:#563330;color:#ffded2;border:1px solid #805146}.overlay{background:#020e1cde;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.rules p{color:#b3c8d7}footer{border-color:#ffffff13;color:#5f7f94}footer span:first-child{color:#a2bac8}.close{color:#c6dbe7}.turn{color:#d8e7ef!important}@media(max-width:760px){.hero{height:420px;margin-top:16px;border-radius:18px}.hero-copy{padding:30px 23px}.hero h1{font-size:49px}.hero>img{object-position:62% center}.hero:after{background:linear-gradient(90deg,#071d35ec,#0b2a3a70 75%,#0b2a3a20)}.hero p{font-size:13px}.season{font-size:8px}.hero-chips{font-size:9px}.intro h1{font-size:24px}.card{padding:24px}.map-top{padding:16px}.map{padding:4px}.legend{padding:15px 12px}.piece-picker button{height:65px}header{height:78px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}.piece-art{display:block!important;width:100%;height:100%;background-image:url(/pirate-pieces.webp);background-size:200% 200%;background-repeat:no-repeat;border-radius:9px;filter:none!important}.piece-0{background-position:0 0}.piece-1{background-position:100% 0}.piece-2{background-position:0 100%}.piece-3{background-position:100% 100%}.piece-picker button{height:74px;padding:2px}.player>span{overflow:hidden;padding:2px}.player>span .piece-art{border-radius:50%}@media(max-width:760px){.piece-picker button{height:85px}}.hero>img{object-position:center 20%}.map svg svg{border-radius:50%;overflow:hidden}@media(max-width:760px){.hero>img{object-position:62% 20%}}.board-scene{position:relative;aspect-ratio:800/540;isolation:isolate;overflow:hidden;border-radius:12px;background:#168798}.board-landscape{object-fit:cover}.board-landscape,.map .board-track{position:absolute;inset:0;width:100%;height:100%}.map .board-track{max-height:none;filter:none;border-radius:0}.board-pawn{position:absolute;width:9%;height:15%;transform:translate(-50%,-83%);pointer-events:none}.pawn-sprite{position:absolute;inset:0;background-image:url(/pirate-walk-cycle.webp);background-size:600% 400%;background-repeat:no-repeat;filter:drop-shadow(1px 3px 2px #13221e66);transform-origin:50% 70%}.pawn-shadow{position:absolute;width:48%;height:11%;bottom:7%;left:26%;border-radius:50%;opacity:.65;box-shadow:0 2px 3px #11241b88;border:1px solid #fff9}.pawn-name{position:absolute;bottom:-10%;left:50%;transform:translateX(-50%);font-size:clamp(5px,.65vw,10px);line-height:1.2;font-weight:700;border-radius:8px;padding:2px 5px;color:#fff8e5;background:#10283edb;border:1px solid #ffffff40;white-space:nowrap;max-width:130%;overflow:hidden;text-overflow:ellipsis}.pawn-walking .pawn-shadow{animation:pawn-shadow .36s infinite}.pawn-winner:after{content:"✨";position:absolute;left:20%;top:0;font-size:25px;animation:win-sparkle 1s ease-in-out infinite}.tile-lit{filter:drop-shadow(0 0 6px #ffdf66)}.board-caption{position:absolute;bottom:2%;left:50%;transform:translateX(-50%);background:#092a3de8;border:1px solid #ffe2a052;box-shadow:0 4px 10px #0003;color:#ffe4a3;padding:8px 15px;border-radius:30px;font-size:clamp(9px,.9vw,13px);text-align:center;max-width:90%;width:max-content;z-index:1000}.map{padding:5px;background:#0a4d5b}.is-moving .board-caption{background:#174f55ed}@keyframes pawn-shadow{50%{transform:scale(.8);opacity:.4}}@keyframes win-sparkle{50%{transform:translateY(-8px) scale(1.2)}}@media(max-width:760px){.board-pawn{width:10%;height:16%}.pawn-name{font-size:6px;padding:1px 3px}.board-caption{font-size:9px;padding:6px 10px}}@media(prefers-reduced-motion:reduce){.pawn-walking,.pawn-walking *{animation:none!important}}.header-actions{display:flex;align-items:center;gap:10px}.sound-toggle{white-space:nowrap;min-width:115px}.board-fx{position:absolute;inset:0;pointer-events:none;z-index:1100;overflow:hidden}.fx-impact{position:absolute;width:0;height:0}.fx-ring{position:absolute;left:-22px;top:-18px;width:44px;height:36px;border:3px solid var(--fx-color);border-radius:50%;box-shadow:0 0 14px var(--fx-color),inset 0 0 10px var(--fx-color);animation:fx-ring .75s ease-out 2}.fx-symbol{position:absolute;left:-25px;top:-85px;width:50px;text-align:center;font-size:45px;filter:drop-shadow(0 3px 5px #11233188);animation:fx-pop .7s ease-out both}.fx-particle{position:absolute;font-style:normal;font-size:20px;color:var(--fx-color);text-shadow:0 0 6px currentColor;animation:fx-burst .95s ease-out var(--delay) both}.fx-notice{position:absolute;top:7%;left:50%;transform:translateX(-50%);max-width:90%;width:max-content;display:flex;flex-direction:column;align-items:center;gap:4px;padding:13px 22px;border:1px solid var(--fx-color);border-radius:16px;background:#0b263bef;box-shadow:0 8px 30px #001a2b88,0 0 20px #d9f7ed22;text-align:center;animation:fx-notice-in .25s ease-out}.fx-notice strong{font-size:clamp(13px,1.5vw,22px);color:var(--fx-color)}.fx-notice span{font-size:clamp(10px,.95vw,13px);color:#f6f3dd}.fx-wind-lines{position:absolute;inset:0}.fx-wind-lines i{position:absolute;left:-35%;top:35%;width:30%;height:3px;border-radius:50%;background:linear-gradient(90deg,transparent,#bff8ef);box-shadow:0 0 14px #bff8ef;animation:fx-gust .7s ease-out 2}.fx-wind-lines i:nth-child(2){top:55%;animation-delay:.15s}.fx-wind-lines i:nth-child(3){top:72%;animation-delay:.3s}.fx-cloud{position:absolute;top:20%;right:14%;font-size:100px;line-height:1;color:#b3c7e4;filter:drop-shadow(0 12px 18px #091d4a77);animation:fx-cloud-in .5s ease-out}.fx-cloud span{display:block;font-size:70px;color:#ffe59a;text-align:center;margin-top:-20px;animation:fx-lightning .8s ease-in-out 2}.fx-tide .fx-ring{border-width:5px;width:85px;height:35px;left:-42px;box-shadow:0 0 20px #6be0ff}.fx-anchor .fx-symbol{animation:fx-anchor .7s cubic-bezier(.34,1.5,.64,1) both}.pawn-effect-anchor .pawn-sprite,.pawn-effect-crab .pawn-sprite{animation:fx-pawn-shake .25s ease-in-out 3}.fx-confetti{position:absolute;inset:0}.fx-confetti i{position:absolute;top:-6%;width:7px;height:13px;border-radius:2px;animation:fx-confetti-fall 2.3s ease-in both}.fx-victory .fx-notice{top:30%;padding:24px 35px;background:#123847f5}.fx-victory .fx-notice strong{font-size:clamp(22px,3vw,38px)}.fx-victory .fx-symbol{font-size:65px}.fx-reduced .fx-cloud,.fx-reduced .fx-confetti,.fx-reduced .fx-particle,.fx-reduced .fx-ring,.fx-reduced .fx-symbol,.fx-reduced .fx-wind-lines{display:none}.fx-reduced .fx-notice{animation:none}@keyframes fx-ring{0%{transform:scale(.5);opacity:1}to{transform:scale(3);opacity:0}}@keyframes fx-pop{0%{transform:translateY(20px) scale(.5);opacity:0}60%{transform:translateY(-8px) scale(1.15);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}@keyframes fx-burst{0%{transform:rotate(var(--angle)) translateX(0) scale(.4);opacity:0}25%{opacity:1}to{transform:rotate(var(--angle)) translateX(var(--distance)) scale(1);opacity:0}}@keyframes fx-notice-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}@keyframes fx-gust{to{left:105%;opacity:0}}@keyframes fx-cloud-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fx-lightning{0%,to{opacity:.3}45%{opacity:1;transform:translateY(6px)}}@keyframes fx-anchor{0%{transform:translateY(-40px);opacity:0}to{transform:translateY(15px);opacity:1}}@keyframes fx-pawn-shake{25%{translate:-3px 0}75%{translate:3px 0}}@keyframes fx-confetti-fall{to{top:110%;rotate:540deg}}@media(max-width:760px){header{gap:8px}.header-actions{gap:5px}.header-actions .ghost{font-size:10px;padding:9px 7px}.sound-toggle{min-width:0}.brand b{font-size:16px}.brand{font-size:27px;gap:5px}.brand span{font-size:8px}.fx-notice{padding:9px 14px}.fx-symbol{font-size:30px;top:-55px}.fx-cloud{font-size:60px}.fx-cloud span{font-size:45px}}.world-hero h1{max-width:580px;font-size:58px;line-height:1.05}.world-hero p{max-width:400px}.world-hero:not(.world-pirate)>img{object-position:center 35%}.world-hero:not(.world-pirate):after{background:linear-gradient(90deg,#071d35ed,#0a233a88 47%,#0a233a00 85%)}.world-library{margin:36px 0 10px}.library-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.library-heading h2{font-size:25px;margin:9px 0 0}.library-heading>span{font-size:11px;color:#8ca8b9}.world-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}.world-card{padding:0;height:170px;position:relative;overflow:hidden;border:1px solid #365063;background:#143041;border-radius:14px;text-align:left;transition:transform .18s,border-color .18s}.world-card>img{width:100%;height:100%;object-fit:cover;opacity:.8;transition:transform .3s}.world-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 25%,#071c30f5)}.world-card.selected{border:2px solid var(--card-accent);box-shadow:0 0 20px #ffffff0b;transform:translateY(-4px)}.world-card:hover:not(:disabled)>img{transform:scale(1.06)}.world-card:disabled{opacity:.75;cursor:default}.world-card.selected:disabled{opacity:1}.world-style{position:absolute;top:10px;left:10px;font-size:8px;color:#f0f2ef;background:#0c273ddd;border:1px solid #ffffff35;border-radius:20px;padding:4px 7px;z-index:1}.world-card-copy{position:absolute;bottom:15px;left:12px;right:9px;z-index:1;display:flex;flex-direction:column;gap:7px}.world-card-copy b{font-size:13px;font-weight:700;line-height:1.25;color:#fff}.world-card-copy small{font-size:9px;color:#b2c8d7}.world-check{position:absolute;right:9px;top:9px;background:var(--card-accent);border-radius:50%;width:21px;height:21px;display:grid;place-items:center;color:#132c3a;z-index:2;font-size:12px}.character-art{background-size:600% 400%}.intro p{max-width:760px}.primary{background:linear-gradient(#ffe19a,var(--world-accent,#f1ae45))}.extra-turn{color:#ffdd8f!important;text-align:center}.piece-picker button.chosen{border-color:var(--world-accent);box-shadow:0 0 14px #ffffff14}.piece-picker button{height:84px}.world-dino .hero-copy h1,.world-dragon .hero-copy h1,.world-forest .hero-copy h1,.world-ninja .hero-copy h1,.world-space .hero-copy h1{color:#fff}@media(max-width:1100px){.world-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.world-card{height:155px}.tag{display:none}.world-card-copy b{font-size:15px}}@media(max-width:760px){.world-hero h1{font-size:43px;max-width:330px}.world-library{margin-top:27px}.library-heading{display:block}.library-heading>span{display:block;margin-top:10px}.library-heading h2{font-size:22px}.world-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.world-card{height:152px}.world-card-copy b{font-size:14px}.piece-picker button{height:85px}.intro{padding-top:26px}.world-style{font-size:8px}}.hero-roster{position:absolute;right:2%;bottom:2%;width:49%;display:flex;align-items:end;z-index:1;pointer-events:none;filter:drop-shadow(0 14px 12px #001b3288)}.hero-roster>div{width:33.3%;aspect-ratio:1}.hero-roster>div:nth-child(2){transform:translateY(-12%)}.world-hero .hero-copy{z-index:2}@media(max-width:760px){.hero-roster{width:57%;right:-8%;bottom:0;opacity:.7}.hero-roster>div{width:100%}.hero-roster>div:not(:first-child){display:none}.world-hero .hero-copy p{max-width:250px}}html{scroll-padding-top:20px}body{min-width:280px}a,button,input{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}.card,.layout,.layout>aside,.map-panel,main{min-width:0}.board-tools{justify-content:space-between;gap:10px;padding:10px 16px;background:#102c40;border-top:1px solid #ffffff0b}.board-tools,.board-zoom{display:flex;align-items:center}.board-zoom{gap:5px}.board-tools button{min-width:44px;min-height:44px;padding:8px 12px;border:1px solid #37566c;background:#193d54;color:#e6edf5;border-radius:9px;font-size:16px}.board-tools .zoom-reset{font-size:12px;min-width:60px}.board-tools .board-expand{font-size:12px;color:#ffde92;background:#2b4145;border-color:#82744c}.board-viewport{width:100%;max-height:none;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;scrollbar-color:#5e7f8f #0b2638}.board-stage{width:calc(100% * var(--board-scale,1));min-width:100%;max-width:none;margin-inline:auto}.board-gesture-hint{font-size:11px;color:#95b5c6;text-align:center;line-height:1.5;padding:8px 12px;background:#102c40}.turn-dock{display:none}.overlay{z-index:4000}.board-focused{position:fixed;inset:0;z-index:3000;border-radius:0;display:flex;flex-direction:column;background:#081d2c;border:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.board-focused .map-top{padding:12px 18px;min-height:40px}.board-focused .board-viewport{flex:1 1;min-height:0;display:flex;align-items:flex-start}.board-focused .board-stage{min-width:0;flex:none;width:calc(min(100vw - 16px, (100dvh - 210px) * 1.48148) * var(--board-scale,1));margin:auto}.board-focused .legend{display:none}.board-focused .board-gesture-hint{flex-shrink:0}.board-focused .turn-dock{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(140px,220px);gap:12px;align-items:center;flex-shrink:0;background:#102e43;padding:10px 18px;border-top:1px solid #496478;position:static}.dock-die{font-size:43px;line-height:1;text-align:center;color:#ffcf78}.dock-status{min-width:0}.dock-status>span{font-size:9px;letter-spacing:1.1px;color:#8fb3c5;display:block;margin-bottom:4px}.dock-status>strong{display:block;font-size:13px;color:#edf6fa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-dock>.primary{min-height:48px;font-size:13px;padding:10px 12px;margin:0}.rules{overscroll-behavior:contain}.board-tools button:focus-visible,.board-viewport:focus-visible{outline:3px solid #ffdc79;outline-offset:-3px}@media(max-width:1280px){button{min-height:44px}input{font-size:16px;min-height:48px}main{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}.is-playing{padding-bottom:calc(112px + env(safe-area-inset-bottom))}.is-playing>.hero,.is-playing>.world-library{display:none}.is-playing>.intro{padding-top:20px;padding-bottom:17px}.is-playing>.intro h1{font-size:25px}.is-playing .turn-dock{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(130px,190px);position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));z-index:1500;padding:12px 16px;gap:10px;align-items:center;border-radius:16px;border:1px solid #517084;background:#102e43f5;box-shadow:0 8px 32px #0009;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.is-playing .board-focused .turn-dock{position:static;border-radius:0;border-inline:0;border-bottom:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;grid-template-columns:40px minmax(0,1fr) minmax(130px,190px)}.header-actions .ghost{min-height:44px;font-size:12px}.hero{height:350px}.world-hero h1{font-size:47px}.hero-copy{padding:30px}.card p,.intro p{font-size:14px}.card small{font-size:12px}.card label{font-size:13px}.player b{font-size:14px}.player small{font-size:12px}.player>span{width:42px;height:42px;flex-shrink:0}.player>div{min-width:0}.player b{overflow-wrap:anywhere}.journal p{font-size:13px}.text{padding:10px}.room button,.text{min-height:44px;font-size:12px}.aside-note{font-size:12px}.demo{font-size:13px}.brand{flex-shrink:0}}@media(min-width:641px) and (max-width:1100px){.layout{grid-template-columns:1fr;gap:20px}.layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.layout>aside>.card:first-child{grid-row:span 3}.layout>aside>.journal{grid-row:auto;margin:0}.layout>aside>.error{grid-column:1/-1}.layout>aside>.aside-note,.layout>aside>.demo{margin:0}.intro{gap:16px}.intro .online{flex-shrink:0}.world-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.world-card{height:154px}.hero-chips{flex-wrap:wrap;gap:12px}.board-tools .board-expand{font-size:13px}.board-caption,.board-gesture-hint{font-size:12px}.pawn-name{font-size:9px}}@media(max-width:640px){main{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}header{height:auto;min-height:76px;gap:8px;padding-block:10px}.brand{font-size:25px;gap:5px}.brand span{font-size:8px;letter-spacing:1.2px}.brand b{font-size:15px;letter-spacing:2px}.header-actions{gap:5px;flex-shrink:0}.header-actions .ghost{font-size:10px;padding:8px;min-height:44px}.sound-toggle{min-width:0}.hero{height:300px;margin-top:12px;border-radius:15px}.hero-copy{padding:22px 19px}.world-hero h1{font-size:36px;max-width:270px;line-height:1.08;letter-spacing:-1px;margin:17px 0 10px}.world-hero .hero-copy p{font-size:13px;line-height:1.5;max-width:250px;margin:10px 0 14px}.hero button{min-height:46px;font-size:12px;padding:11px 17px}.season{font-size:8px;letter-spacing:1px;padding:7px 10px}.hero-chips{font-size:9px;gap:10px;margin-top:13px;flex-wrap:wrap}.hero-roster{width:46%;right:-8%;bottom:-2%;opacity:.55}.world-library{margin-top:24px}.library-heading{margin-bottom:13px}.library-heading h2{font-size:21px}.library-heading>span{font-size:12px}.world-grid{display:flex;gap:11px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scroll-padding-inline:2px;padding:5px 2px 13px;scrollbar-width:thin;scrollbar-color:#476575 transparent;-webkit-overflow-scrolling:touch}.world-card{flex:0 0 166px;height:142px;scroll-snap-align:start;border-radius:12px}.world-card.selected{transform:none}.world-card-copy{bottom:12px;left:11px}.world-card-copy b{font-size:14px}.world-card-copy small{font-size:10px}.world-style{font-size:9px}.intro{display:block;padding:22px 0 16px}.intro h1{font-size:24px!important;line-height:1.2;margin:10px 0}.intro p{font-size:13px;line-height:1.6}.intro .online{display:inline-block;margin-top:12px;font-size:11px}.layout{grid-template-columns:minmax(0,1fr);gap:16px}.layout>aside{display:flex;flex-direction:column;gap:14px}.layout>aside>*{width:100%}.card{padding:20px;border-radius:14px}h2{font-size:26px}.piece-picker{margin-top:20px}.piece-picker>div{gap:8px}.piece-picker button{min-height:68px;height:75px;padding:2px}.piece-picker small{font-size:12px}.primary{min-height:48px;font-size:14px}.join{gap:8px}.join button{font-size:13px;min-height:48px;padding-inline:13px}.aside-note,.demo,.journal{margin:0}.map-panel{border-radius:14px}.map-top{padding:12px;font-size:10px;letter-spacing:1px}.board-tools{padding:8px 10px;gap:6px}.board-tools .board-expand{font-size:11px;padding-inline:10px}.board-tools .zoom-reset{min-width:51px}.board-zoom{gap:4px}.map{padding:2px}.board-viewport{border-radius:0}.legend{display:flex;flex-wrap:wrap;padding:5px 10px 8px;gap:4px 10px;font-size:10px}.legend .text{margin-left:auto;padding:8px 4px}.board-gesture-hint{font-size:10px;padding:7px 11px}.board-caption{font-size:9px;max-width:94%;padding:5px 9px;white-space:normal}.pawn-name{font-size:7px;max-width:160%;padding:1px 3px}.board-focused .board-stage{width:calc(min(100vw - 8px, (100dvh - 220px) * 1.48148) * var(--board-scale,1))}.is-playing .board-focused .turn-dock,.is-playing .turn-dock{grid-template-columns:32px minmax(0,1fr) 126px;padding:10px;gap:8px}.dock-die{font-size:36px}.dock-status>span{font-size:8px}.dock-status>strong{font-size:12px}.turn-dock>.primary{font-size:12px;padding:8px}.rules{max-height:calc(100dvh - 24px);padding:20px}.rules .close{min-height:44px}.rules p{font-size:14px}.overlay{padding:12px 12px max(12px,env(safe-area-inset-bottom))}.fx-notice{top:5%;max-width:94%;padding:8px 12px}.fx-notice strong{font-size:13px}.fx-notice span{font-size:10px;max-width:260px}footer{gap:12px;padding:20px 0;font-size:9px;line-height:1.6}.is-playing footer{margin-bottom:10px}}@media(max-width:359px){header{flex-wrap:wrap;justify-content:center;padding-bottom:12px}.brand{margin-right:auto}.header-actions{margin-left:auto}.header-actions .ghost{font-size:9px;padding-inline:6px}.world-hero h1{font-size:32px}.board-tools{padding-inline:6px}.board-tools button{min-width:40px}.board-tools .board-expand{font-size:10px}.is-playing .turn-dock{grid-template-columns:27px minmax(0,1fr) 111px;gap:6px;padding:9px}.dock-status>strong{font-size:11px}}@media(max-width:1280px) and (orientation:landscape) and (max-height:600px){header{min-height:60px;height:60px;padding-block:6px}.hero{height:260px}.hero-copy{padding:20px 26px}.world-hero h1{font-size:34px;max-width:330px;margin:13px 0 9px}.hero-chips{margin-top:10px}.world-grid{display:flex;overflow:auto;gap:12px;padding:6px 2px 12px}.world-card{flex:0 0 180px;height:132px}.is-playing>.intro{padding:12px 0}.is-playing>.intro .eyebrow,.is-playing>.intro .online,.is-playing>.intro p{display:none}.is-playing>.intro h1{margin:0;font-size:21px}.board-focused .board-gesture-hint,.board-focused .map-top{display:none}.board-focused .board-tools{padding-block:5px}.board-focused .board-stage{width:calc(min(100vw - 20px, (100dvh - 130px) * 1.48148) * var(--board-scale,1))}.is-playing .board-focused .turn-dock{padding-block:7px}}.map-panel.board-focused{width:100vw;height:100dvh;max-height:100dvh;align-self:stretch;border-radius:0}.install-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;color:#9fbccc;font-size:12px}.install-bar .ghost{min-height:44px}.install-guide{padding:18px 22px;background:#14394b;border:1px solid #48677a;border-radius:14px;max-width:760px}.install-guide p{color:#c2d9e4;font-size:14px}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:5000;text-align:center;background:#70491e;color:#fff0c5;padding:12px;font-size:13px}.invite-banner,.resume-banner{display:flex;align-items:center;gap:18px;margin:14px 0;padding:20px;border-radius:16px;background:linear-gradient(110deg,#264d50,#142c42);border:1px solid #62948c}.resume-banner>div{flex:1 1}.invite-banner strong,.resume-banner strong{font-size:17px;color:#ffe3a3}.invite-banner span,.resume-banner span{display:block;font-size:13px;color:#bcdbde;margin-top:5px}.invite-banner .primary,.resume-banner .primary{width:auto;min-width:175px}.invite-banner{background:#16354b;flex-wrap:wrap}.invite-banner span{flex:1 1}.connection-status{padding:12px 16px;border:1px solid #356b66;color:#8ce3bf;border-radius:12px;background:#123b3c;font-size:12px}.connection-status.offline,.connection-status.reconnecting{border-color:#97754f;color:#ffdb91;background:#3d3424}.layout>aside{scroll-margin-top:12px}.adventure-option{display:flex!important;align-items:center;gap:12px;background:#0b2638;padding:13px;border:1px solid #3a5b70;border-radius:12px;cursor:pointer}.adventure-option input{width:22px!important;height:22px!important;min-height:22px!important;margin:0!important;accent-color:#72d7b9;flex-shrink:0}.adventure-option small{font-weight:400;line-height:1.5;margin-top:5px!important}.board-control-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-right:12px;background:#102c40}.board-control-row>.board-tools{flex:1 1}.camera-toggle{min-height:44px;font-size:11px;padding:9px 12px;margin-bottom:8px}.camera-toggle[aria-pressed=true]{background:#204d52;border-color:#66bea6;color:#b6f6df}.path-choice{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;background:#173d4b;border-block:1px solid #436b75;color:#a7dcdb;font-size:12px}.path-choice button{font-size:12px;min-height:44px;border:1px solid #42727e;background:#113040;color:#c5e7eb}.path-choice button[aria-pressed=true]{background:#ffce70;color:#342b19;border-color:#ffd577}.board-focused .board-control-row,.board-focused .path-choice{flex-shrink:0}.board-focused .board-stage{width:calc(min(100vw - 16px,(100dvh - 290px)*1.48148)*var(--board-scale,1))}.reaction-panel{margin-top:20px;padding-top:16px;border-top:1px solid #ffffff1c}.reaction-panel>span{display:block;font-size:9px;letter-spacing:1.5px;color:#9cb7c9;margin-bottom:10px}.reaction-panel>div{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.reaction-panel button{font-size:22px;padding:5px;min-height:44px;background:#254858;border:1px solid #456474}.pawn-pose{position:absolute;inset:0;transform-origin:50% 90%}.pawn-ready .pawn-pose{animation:pose-ready .32s ease-in-out infinite}.pose-happy{animation:pose-jump .55s ease-in-out 2}.pose-scared{animation:pose-scared .25s ease-in-out 4}.pawn-celebrate .pawn-pose{animation:pose-dance .55s ease-in-out infinite}.pawn-walking .pawn-pose{animation:pose-walk .36s ease-in-out infinite}.pawn-emote{position:absolute;top:-35%;left:40%;background:#fffaef;border-radius:50% 50% 50% 5%;padding:4px 6px;font-size:clamp(16px,2vw,30px);box-shadow:0 3px 12px #0006;animation:emote-in .3s ease-out}.reaction-stream{position:absolute;right:2%;top:2%;z-index:1150;display:flex;flex-direction:column;align-items:flex-end;gap:5px;pointer-events:none}.reaction-stream span{background:#0d2d43e8;padding:7px 12px;border-radius:14px;color:#fff0ca;font-size:12px;border:1px solid #7b9a9b80;animation:emote-in .3s ease-out}.alternate-path{filter:drop-shadow(0 0 3px #0b2b3b)}.is-playing .install-bar,.is-playing .install-guide{display:none}@keyframes pose-ready{50%{transform:scale(.96,1.04) translateY(-3%)}}@keyframes pose-walk{25%{transform:rotate(-3deg) translateY(-3%)}75%{transform:rotate(3deg) translateY(-3%)}}@keyframes pose-jump{50%{transform:translateY(-16%) rotate(5deg)}}@keyframes pose-scared{25%{transform:translateX(-5%) rotate(-7deg)}75%{transform:translateX(5%) rotate(7deg)}}@keyframes pose-dance{25%{transform:translateY(-13%) rotate(-9deg)}75%{transform:translateY(-13%) rotate(9deg)}}@keyframes emote-in{0%{opacity:0;transform:translateY(12px) scale(.6)}to{opacity:1;transform:translateY(0) scale(1)}}@media(min-width:641px) and (max-width:1100px){.layout>aside>.connection-status{grid-column:1/-1}.layout>aside>.card:not(.journal){grid-column:1;grid-row:auto}.layout>aside>.journal{grid-column:2;grid-row:2}}@media(max-width:640px){.install-bar{font-size:11px;gap:8px}.install-bar>span{max-width:150px}.install-bar .ghost{font-size:11px;padding:8px}.invite-banner,.resume-banner{padding:16px;gap:12px;flex-wrap:wrap}.resume-banner>div{flex-basis:100%}.invite-banner .primary,.resume-banner .primary{flex:1 1}.invite-banner span{flex-basis:100%}.board-control-row{padding-right:0;gap:0}.board-control-row>.board-tools{width:100%;flex-basis:100%}.camera-toggle{margin:0 10px 8px}.path-choice{padding:8px 10px;gap:6px}.path-choice span{flex-basis:100%;font-size:11px}.path-choice button{font-size:10px;padding:8px}.board-focused .board-stage{width:calc(min(100vw - 8px,(100dvh - 340px)*1.48148)*var(--board-scale,1))}.reaction-stream span{font-size:10px;padding:5px 8px}.reaction-panel button{font-size:22px}.reaction-panel>div{gap:6px}}@media(max-width:1280px) and (orientation:landscape) and (max-height:600px){.board-focused .board-control-row{flex-wrap:nowrap}.board-focused .board-control-row>.board-tools{flex-basis:auto;width:auto}.board-focused .camera-toggle{margin:0 8px}.board-focused .path-choice{padding:4px 12px}.board-focused .path-choice span{flex-basis:auto}.board-focused .board-stage{width:calc(min(100vw - 16px,(100dvh - 180px)*1.48148)*var(--board-scale,1))}}@media(prefers-reduced-motion:reduce){.pawn-emote,.pawn-pose,.reaction-stream span{animation:none!important}.board-viewport{scroll-behavior:auto!important}}.board-focused .board-viewport{max-height:none!important}.board-reactions{display:none}.board-focused .board-reactions{display:flex;gap:8px;align-items:center;justify-content:center;flex-shrink:0;padding:5px 12px;background:#123044;border-top:1px solid #456579}.board-reactions button{min-height:44px;min-width:44px;font-size:22px;padding:4px 8px;background:#254c5a;border:1px solid #456f77}.board-focused .board-stage{width:calc(min(100vw - 16px,(100dvh - 340px)*1.48148)*var(--board-scale,1))}@media(max-width:640px){.board-focused .board-stage{width:calc(min(100vw - 8px,(100dvh - 390px)*1.48148)*var(--board-scale,1))}.board-focused .board-reactions{gap:6px;padding:3px 8px}.board-reactions button{font-size:20px;padding:3px;min-width:40px}}@media(max-width:1280px) and (orientation:landscape) and (max-height:600px){.board-focused .board-reactions{position:absolute;right:8px;top:120px;flex-direction:column;background:#123044db;z-index:1250;border-radius:12px;gap:4px;padding:4px}.board-reactions button{min-height:30px;min-width:32px;font-size:18px;padding:2px}.board-focused .board-stage{width:calc(min(100vw - 100px,(100dvh - 180px)*1.48148)*var(--board-scale,1))}}