@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap";:root{color:#f8efe5;font-synthesis:none;--gold:#edbc6e;--muted:#b49b89;--panel:#2a1a13;background:#1b100b;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(at 50% -25%,#553426 0%,#1b100b 50%,#160d09 100%);min-width:300px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.46}button:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid #ffdd9c}.shell{max-width:640px;padding:max(22px,env(safe-area-inset-top)) max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));min-height:100dvh;margin:auto}.loading,.center{text-align:center;justify-content:center;align-items:center;display:flex}.loading{min-height:100dvh;color:var(--gold);flex-direction:column}.loading h1,.intro h1,.invite-screen h1,.result h2{font-family:Playfair Display,Georgia,serif}.loading p{color:var(--muted)}.lobby-header{color:#ba9f89;letter-spacing:.2em;align-items:center;gap:12px;font-size:10px;font-weight:700;display:flex}.brand-mark{color:#edbc6e;background:#382318;border:1px solid #a77646;border-radius:13px;place-items:center;width:40px;height:40px;display:grid}.intro{padding:54px 0 45px}.greeting{color:var(--gold);font-size:14px}.intro h1,.invite-screen h1{color:#f9ead5;letter-spacing:-.035em;margin:20px 0;font-size:clamp(48px,12vw,74px);line-height:.99}.intro h1 em{color:#eebc77;font-style:normal}.intro>p:not(.greeting),.invite-screen>p{color:#bba598;max-width:290px;line-height:1.55}.intro .primary{margin-top:23px}.primary,.secondary{border:0;border-radius:14px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:12px 18px;font-weight:700;transition:transform .12s,filter .12s;display:flex}.primary{color:#29170e;background:linear-gradient(135deg,#f6d796,#df9f4c);box-shadow:0 5px 20px #0003}.primary:hover:not(:disabled){filter:brightness(1.08)}.primary:active:not(:disabled),.secondary:active:not(:disabled){transform:scale(.98)}.intro .primary{width:100%}.intro .primary svg:last-child{margin-left:auto}.secondary{color:#f2dfcd;background:#3a281e;border:1px solid #604534}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading h2{font-size:16px}.section-heading span{color:#ac8a70;font-size:12px}.empty{color:var(--muted);border-top:1px solid #543c2c;padding:27px 0 31px;font-size:14px;line-height:1.6}.empty-icon{color:var(--gold)}.game-row{text-align:left;color:#f8efe5;background:linear-gradient(110deg,#38241b,#2b1b14);border:1px solid #5c3e2a;border-radius:14px;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:13px;display:flex}.game-row-text{flex:1}.game-row-text strong,.game-row-text small,.player-line strong,.player-line small{display:block}.game-row-text small,.player-line small{color:var(--muted);margin-top:5px;font-size:12px}.avatar{color:#f5d29a;background:linear-gradient(135deg,#6e492e,#2d1a10);border:2px solid #b28c65;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.rules-link,.resign-link,.text-button{color:#c4a995;background:0 0;border:0;align-items:center;gap:8px;padding:14px 0;font-size:13px;display:flex}.rules-link{margin-top:20px}.lobby-links{flex-wrap:wrap;gap:24px;display:flex}.notification-option{color:#f4dfc8;align-items:center;gap:10px;padding:12px 0;display:flex}.notification-option input{accent-color:#edbc6e;width:20px;height:20px}.rules a{color:#edbc6e}.invite-screen{max-width:360px}.invite-screen .brand-mark{margin:auto}.invite-screen .eyebrow{max-width:none;color:var(--gold);letter-spacing:.18em;margin-top:35px;font-size:11px}.invite-screen>p{margin:0 auto 30px}.invite-screen .primary{width:100%}.invite-screen .text-button{margin:auto}.notice,.error{color:#ffb6a5!important}.game-shell{max-width:1000px;padding-top:max(12px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));flex-direction:column;display:flex}.game-top{align-items:center;gap:8px;margin-bottom:12px;display:flex}.game-top .player-line{flex:1}.player-line{align-items:center;gap:10px;min-width:0;display:flex}.player-line span:not(.avatar){min-width:0}.player-line strong,.player-line small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-line strong{font-size:15px}.icon-btn{color:#d2b8a2;background:#322118;border:1px solid #533b2c;border-radius:12px;flex:0 0 40px;place-items:center;width:40px;height:40px;display:grid}.icon-btn svg{width:19px;height:19px}.game-layout{flex-direction:column;align-items:center;gap:15px;display:flex}.board-frame{aspect-ratio:.72;background:#4f2816 url(/walnut.webp) 50%/cover;border:4px solid #794626;border-radius:10px;width:100%;max-width:600px;padding:8px;box-shadow:0 8px 24px #0009,inset 0 0 0 2px #b17b47}.board{background:#643c26 url(/walnut.webp) 50%/cover;border:3px solid #29160e;border-radius:3px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:inset 0 1px 12px #000b}.points{z-index:1;grid-template-columns:repeat(12,minmax(0,1fr));height:45%;display:grid;position:absolute;left:0;right:0}.top-row{top:0}.bottom-row{bottom:0}.point{appearance:none;background:0 0;border:0;min-width:0;padding:0;position:relative;overflow:visible}.point:nth-child(6){margin-right:3px}.point:nth-child(7){margin-left:3px}.triangle{opacity:1;clip-path:polygon(0 0,100% 0,50% 100%);background:#1b100c;position:absolute;inset:0 1px}.point.light .triangle{background:#d6a26a}.point.bottom .triangle{transform:rotate(180deg)}.stack{z-index:2;flex-direction:column;align-items:center;width:96%;display:flex;position:absolute;left:2%}.top .stack{top:2px}.bottom .stack{flex-direction:column-reverse;bottom:2px}.checker{aspect-ratio:1;filter:drop-shadow(0 2px 2px #0009);border:0;border-radius:50%;flex:none;width:min(100%,35px);display:block}.checker.ivory{background:url(/checker-ivory.webp) 50%/contain no-repeat}.checker.brown{background:url(/checker-brown.webp) 50%/contain no-repeat}.stack-count{color:#fff;background:#1b100bdc;border-radius:50%;padding:3px;font-size:10px;position:absolute;top:35%}.bottom .stack-count{top:auto;bottom:35%}.selected .checker:first-child{outline:2px solid #ffc960}.selectable{cursor:pointer}.target{aspect-ratio:1;z-index:3;background:#f9c56480;border:2px solid #ffc85e;border-radius:50%;width:72%;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 10px #f0b55080}.middle-bar{z-index:2;background:#3d1f12;width:5px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 5px #000}.board-center{z-index:4;pointer-events:none;justify-content:center;align-items:center;height:12%;display:flex;position:absolute;top:44%;left:0;right:0}.board-dice{gap:6px;display:flex}.die{color:#fbe7c3;text-shadow:1px 2px 3px #000;font-size:clamp(24px,7vw,38px);line-height:1}.bear-off{color:#f7deb6;z-index:5;background:#28190e;border:0;width:25px;height:8%;position:absolute;top:46%;right:0}.bear-off.legal{color:#22140c;background:#d9a348;box-shadow:0 0 10px #ffc85e}.game-controls{width:100%;max-width:600px}.own{margin:0 0 15px}.own small{color:var(--gold)}.off-count{color:#b8997f;margin-left:auto;font-size:11px}.control-row{gap:9px;display:flex}.control-row .primary{flex:1}.control-row .secondary{flex:0 auto}.dice-info{min-height:30px;color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;display:flex}.mini-die{color:#21150f;background:#f0dfc3;border-radius:5px;place-items:center;width:25px;height:25px;margin-left:5px;display:inline-grid}.mini-die.used{opacity:.35}.hint{color:#a98d78;font-size:12px;line-height:1.5}.waiting p,.result p{color:var(--muted);font-size:13px}.result h2{margin:0;font-size:30px}.result .primary,.waiting-button{width:100%}.resign-link{margin-left:auto}.overlay{z-index:10;background:#0c0706bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(100%,640px);padding:22px max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));background:#2c1c14;border:1px solid #6a4b35;border-radius:22px 22px 0 0;box-shadow:0 -5px 35px #0007}.sheet header{justify-content:space-between;align-items:center;gap:15px;display:flex}.sheet h2{margin:0;font-size:20px}.sheet h3{color:#edc390;margin-bottom:4px;font-size:15px}.rules{max-height:85dvh;overflow:auto}.rules p,.confirm p{color:#d1b9a6;font-size:14px;line-height:1.55}.rules .primary{width:100%;margin-top:20px}.chat{flex-direction:column;height:min(72dvh,600px);display:flex}.messages{flex:1;padding:15px 0;overflow:auto}.message{max-width:85%;margin:0 auto 15px 0;font-size:13px}.message.mine{margin-left:auto;margin-right:0}.message strong{color:#dfbd9d;font-size:11px}.message p{overflow-wrap:anywhere;background:#443027;border-radius:12px;margin:4px 0 0;padding:10px 12px}.message.mine p{background:#65482a}.chat form{gap:10px;display:flex}.chat input{color:#fff;background:#21150f;border:1px solid #604534;border-radius:12px;flex:1;min-width:0;padding:12px}.send{background:var(--gold);color:#28170c;border:0;border-radius:12px;width:48px}.confirm{max-width:420px}.toast{left:15px;right:15px;bottom:max(20px,env(safe-area-inset-bottom));z-index:20;color:#fff;background:#7b332a;border-radius:12px;max-width:500px;margin:auto;padding:14px 18px;font-size:14px;position:fixed}@media (orientation:landscape) and (width>=500px){.game-shell{height:var(--nardy-viewport-height,var(--tg-viewport-stable-height,100dvh));min-height:0;padding-bottom:max(8px,env(safe-area-inset-bottom))}.game-top{right:max(15px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));z-index:2;width:28%;position:absolute}.game-top .back{z-index:4;opacity:.8;position:fixed;top:8px;left:8px}.game-layout{flex-direction:row;justify-content:center;align-items:center;gap:20px;height:100%}.board-frame{width:min(68%,var(--board-fitting-width,100%));aspect-ratio:1.65;max-width:none;height:auto;max-height:none}.game-controls{width:28%;padding-top:60px}.checker{width:min(100%,27px)}.player-line strong{font-size:13px}.game-top .player-line .avatar{display:none}.hint{font-size:11px}}@media (height<=700px) and (orientation:portrait){.game-shell{padding-top:8px}.game-top{margin-bottom:6px}.board-frame{width:min(100%,41.76dvh);max-width:100%;height:auto;max-height:none}.game-layout{gap:8px}.own{margin-bottom:6px}.hint{margin:6px 0}.intro{padding-top:30px}}@media (width<=360px){.control-row .primary,.control-row .secondary{min-width:0;padding-left:9px;padding-right:9px;font-size:12px}.control-row>*{flex:1 1 0!important}.game-top{gap:5px}.game-top .icon-btn{flex-basis:36px;width:36px;height:36px}}@media (orientation:landscape) and (width>=500px) and (height<=600px){.game-controls .control-row{flex-direction:column;gap:6px}.game-controls .control-row .primary,.game-controls .control-row .secondary{min-height:40px;padding:8px 10px;font-size:12px}.game-controls .own{margin-bottom:7px}.game-controls .hint{margin:4px 0}.game-controls .resign-link{padding:5px 0}.game-controls .dice-info{margin-bottom:4px}}.game-notice{color:#f0c989;margin:4px 0 8px;font-size:12px}.computer-button{color:#f6dfc2;background:#35231b;border:1px solid #76543a;border-radius:14px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;margin-top:10px;padding:12px 18px;font-weight:700;display:flex}.computer-button svg:last-child{margin-left:auto}.computer-button:hover:not(:disabled){background:#493024}.game-shell{height:var(--tg-viewport-stable-height,100dvh);min-height:0;padding-top:max(12px,env(safe-area-inset-top),var(--tg-content-safe-area-inset-top,0px));padding-bottom:max(10px,env(safe-area-inset-bottom),var(--tg-content-safe-area-inset-bottom,0px));overflow:hidden}.game-layout{min-height:0}.game-layout .board-frame{width:min(100%,var(--board-fitting-width,100%));flex-shrink:0}@media (orientation:landscape) and (width>=500px){.game-layout .board-frame{width:min(68%,var(--board-fitting-width,100%));aspect-ratio:1.65;height:auto;max-height:none}}.send{justify-content:center;align-items:center;padding:0;line-height:0;display:flex}.send svg{flex:none;width:21px;height:21px;display:block}.shell{padding-top:max(22px,env(safe-area-inset-top),var(--tg-content-safe-area-inset-top,0px));padding-bottom:max(24px,env(safe-area-inset-bottom),var(--tg-content-safe-area-inset-bottom,0px))}.game-shell{padding-top:max(12px,env(safe-area-inset-top),var(--tg-content-safe-area-inset-top,0px));padding-bottom:max(10px,env(safe-area-inset-bottom),var(--tg-content-safe-area-inset-bottom,0px))}.compact-viewport .game-top{margin-bottom:5px}.compact-viewport .game-layout{gap:5px}.compact-viewport .own{margin-bottom:5px}.compact-viewport .dice-info{min-height:22px;margin-bottom:3px}.compact-viewport .hint{display:none}.compact-viewport .resign-link{padding:3px 0}.compact-viewport .control-row .primary,.compact-viewport .control-row .secondary{min-height:40px;padding:7px 10px}.compact-viewport .avatar{flex-basis:34px;width:34px;height:34px}.compact-viewport .icon-btn{flex-basis:36px;width:36px;height:36px}.tiny-viewport .game-controls .player-line{margin-bottom:2px}.tiny-viewport .waiting p,.tiny-viewport .result p{margin:4px 0;font-size:11px}.game-shell{height:var(--nardy-viewport-height,var(--tg-viewport-stable-height,100dvh));padding-top:max(12px,env(safe-area-inset-top),var(--tg-safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px),var(--nardy-overlay-top,0px));padding-bottom:max(10px,env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px));padding-left:max(12px,env(safe-area-inset-left),var(--tg-safe-area-inset-left,0px),var(--tg-content-safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right),var(--tg-safe-area-inset-right,0px),var(--tg-content-safe-area-inset-right,0px))}@media (orientation:landscape) and (width>=500px){.game-layout .board-frame{width:min(68%,var(--board-fitting-width,100%));max-height:none}.game-top{top:max(12px,env(safe-area-inset-top),var(--tg-safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px),var(--nardy-overlay-top,0px));right:max(15px,env(safe-area-inset-right),var(--tg-safe-area-inset-right,0px),var(--tg-content-safe-area-inset-right,0px))}.game-top .back{left:max(8px,env(safe-area-inset-left),var(--tg-safe-area-inset-left,0px),var(--tg-content-safe-area-inset-left,0px));top:max(12px,env(safe-area-inset-top),var(--tg-safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px),var(--nardy-overlay-top,0px))}.tiny-viewport .game-controls{padding-top:38px}}.game-shell .checker{width:min(100%,var(--checker-size,35px))}@media (orientation:landscape) and (width>=500px){.tiny-viewport .waiting p{display:none}.tiny-viewport .game-controls .control-row .primary,.tiny-viewport .game-controls .control-row .secondary{min-height:32px;padding:5px 7px;font-size:11px}.tiny-viewport .game-controls .control-row{flex-direction:row;gap:5px}.tiny-viewport .game-controls .control-row .primary,.tiny-viewport .game-controls .control-row .secondary{flex:1 1 0;min-width:0;min-height:38px;line-height:1.15}.tiny-viewport .game-controls .control-row svg{display:none}.game-layout{justify-content:space-between;gap:12px}.game-layout .board-frame{margin-inline:auto}.game-controls{flex:0 0 28%}.game-layout .board-frame{aspect-ratio:1.65}}.game-layout{width:100%}.game-layout .game-top{width:100%;margin-bottom:0}@media (orientation:landscape) and (width>=500px){.game-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(180px,28%);justify-content:normal;align-items:stretch;gap:0 12px;display:grid}.game-layout .game-top{grid-area:1/2;align-self:start;width:100%;min-width:0;position:static}.game-layout .game-top .player-line{min-width:0}.game-layout .board-frame{width:min(calc(100% - 48px),var(--board-fitting-width,100%));grid-area:1/1/3;place-self:center;max-width:100%;margin:0 0 0 48px}.game-layout .game-controls{grid-area:2/2;align-self:center;width:100%;min-width:0;max-width:100%;padding-top:0}.tiny-viewport .game-layout .game-controls{padding-top:0}.game-shell .game-layout{gap:0 12px}}@media (orientation:landscape) and (width>=1024px) and (height>=600px){.game-shell{width:100%;max-width:none;padding-left:max(24px,env(safe-area-inset-left),var(--tg-safe-area-inset-left,0px),var(--tg-content-safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right),var(--tg-safe-area-inset-right,0px),var(--tg-content-safe-area-inset-right,0px));padding-top:max(24px,env(safe-area-inset-top),var(--tg-safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px),var(--nardy-overlay-top,0px));padding-bottom:max(24px,env(safe-area-inset-bottom),var(--tg-safe-area-inset-bottom,0px),var(--tg-content-safe-area-inset-bottom,0px));margin:0}.game-shell .game-layout{grid-template-columns:minmax(0,1fr) clamp(280px,24vw,380px);column-gap:24px}.game-layout .board-frame{width:min(calc(100% - 56px),var(--board-fitting-width,100%));margin-left:56px}.game-top .back{left:max(24px,env(safe-area-inset-left),var(--tg-safe-area-inset-left,0px),var(--tg-content-safe-area-inset-left,0px));top:max(24px,env(safe-area-inset-top),var(--tg-safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px),var(--nardy-overlay-top,0px))}.game-top .player-line .avatar{display:grid}.game-top .player-line strong,.game-controls .player-line strong{font-size:16px}.game-top .player-line small,.game-controls .player-line small,.game-controls .dice-info,.game-controls .hint{font-size:14px}.game-controls .primary,.game-controls .secondary{font-size:15px}.game-controls .off-count{font-size:13px}.board-frame .stack-count{padding:4px;font-size:14px}.board-frame .die{font-size:clamp(34px,4vw,56px)}}.game-shell{--nardy-safe-top:max(12px,calc(max(env(safe-area-inset-top,0px),var(--tg-safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px)),var(--nardy-overlay-top,0px));--nardy-safe-bottom:max(10px,calc(max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px)) + var(--tg-content-safe-area-inset-bottom,0px)));padding-top:var(--nardy-safe-top);padding-bottom:var(--nardy-safe-bottom)}.player-line small.opponent-off{color:#d4ad88;margin-top:3px;font-size:11px}.tiny-viewport .game-top .player-line strong{line-height:1.05}.tiny-viewport .game-top .player-line small{margin-top:1px;font-size:10px;line-height:1.1}.tiny-viewport .game-top .player-line small.opponent-off{margin-top:1px}@media (orientation:landscape) and (width>=500px){.game-shell .game-top .back{top:var(--nardy-safe-top)}}@media (orientation:landscape) and (width>=1024px) and (height>=600px){.game-shell{--nardy-safe-top:max(24px,calc(max(env(safe-area-inset-top,0px),var(--tg-safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px)),var(--nardy-overlay-top,0px));--nardy-safe-bottom:max(24px,calc(max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px)) + var(--tg-content-safe-area-inset-bottom,0px)))}}:root{--nardy-screen-top:max(22px,calc(max(env(safe-area-inset-top,0px),var(--tg-safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px)),var(--nardy-overlay-top,0px));--nardy-screen-bottom:max(24px,calc(max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px)) + var(--tg-content-safe-area-inset-bottom,0px)));--nardy-screen-left:max(12px,calc(max(env(safe-area-inset-left,0px),var(--tg-safe-area-inset-left,0px)) + var(--tg-content-safe-area-inset-left,0px)));--nardy-screen-right:max(12px,calc(max(env(safe-area-inset-right,0px),var(--tg-safe-area-inset-right,0px)) + var(--tg-content-safe-area-inset-right,0px)))}.shell:not(.game-shell){padding-top:var(--nardy-screen-top);padding-bottom:var(--nardy-screen-bottom);padding-left:max(22px,var(--nardy-screen-left));padding-right:max(22px,var(--nardy-screen-right))}.shell.lobby,.shell.center{height:var(--nardy-viewport-height,100dvh);min-height:0}.lobby-scroll{overscroll-behavior:contain;scrollbar-width:thin;height:100%;overflow-y:auto}.shell.center{flex-direction:column;justify-content:flex-start}.invite-screen{overscroll-behavior:contain;max-height:100%;margin:auto;overflow-y:auto}.loading{min-height:var(--nardy-viewport-height,100dvh);padding:var(--nardy-screen-top) var(--nardy-screen-right) var(--nardy-screen-bottom) var(--nardy-screen-left)}.overlay{height:var(--nardy-viewport-height,100dvh);padding:var(--nardy-screen-top) var(--nardy-screen-right) var(--nardy-screen-bottom) var(--nardy-screen-left);inset:0 0 auto}.overlay .sheet{overscroll-behavior:contain;border-radius:22px;max-height:100%;overflow-y:auto}.overlay .chat{min-height:0;overflow:hidden}.chat .messages{min-height:0}.toast{top:calc(var(--nardy-viewport-height,100dvh) - var(--nardy-screen-bottom) - 10px);bottom:auto;transform:translateY(-100%)}*{touch-action:pan-x pan-y}
