:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Avenir Next,system-ui,sans-serif;line-height:1.3;font-weight:400;color:#261606;background:radial-gradient(circle at 50% 16%,rgba(255,218,137,.18),transparent 26%),linear-gradient(180deg,#dc8b23,#e39727 24%,#eda62b 54%,#f2b82f 78%,#f6cf64);color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink: #221303;--ink-soft: rgba(82, 54, 17, .6);--ink-muted: rgba(82, 54, 17, .45);--cream: #f5d09c;--cream-soft: #f7dfb7;--cream-bright: #f7ecd2;--orange: #e89525;--orange-2: #f0b12f;--yellow: #ffcb0b;--yellow-deep: #c88900;--blue: #1b87f1;--blue-card: #58a4fb;--olive: #aa850c;--danger: #ff4545;--shadow-panel: 0 26px 48px rgba(117, 70, 10, .3);--shadow-soft: 0 16px 28px rgba(135, 85, 18, .2);--shadow-ambient: 0 32px 60px rgba(64, 35, 6, .2)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{position:relative;min-height:100vh;padding:clamp(10px,1.8vw,20px) clamp(12px,2vw,28px) clamp(20px,3vw,40px);overflow:hidden}.app-shell__glow{position:absolute;inset:auto;width:34rem;height:34rem;border-radius:50%;pointer-events:none;filter:blur(34px);opacity:.28}.app-shell__glow--left{left:-10rem;top:12rem;background:#ffe79952}.app-shell__glow--right{right:-10rem;bottom:6rem;background:#ffd45842}.app-main{position:relative;z-index:1}.app-main{width:min(100%,1520px);margin:0 auto}.brand-mark{display:flex;justify-content:center;width:100%}.brand-mark__image{display:block;width:min(100%,17rem);height:auto;object-fit:contain}.brand-mark--compact .brand-mark__image{width:min(100%,8.8rem)}.close-orb{width:clamp(3.3rem,5.5vw,4.2rem);height:clamp(3.3rem,5.5vw,4.2rem);padding:0;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffeecdd1;box-shadow:inset 0 .1rem #ffffff3d,0 .35rem .8rem #a76f151f}.close-orb__inner{position:relative;width:50%;height:50%;border-radius:999px;display:block;background:#ffb295;color:transparent}.close-orb__inner:before,.close-orb__inner:after{content:"";position:absolute;left:50%;top:50%;width:54%;height:.18rem;border-radius:999px;background:#ff3f3c;transform-origin:center}.close-orb__inner:before{transform:translate(-50%,-50%) rotate(45deg)}.close-orb__inner:after{transform:translate(-50%,-50%) rotate(-45deg)}.close-orb--static{pointer-events:none}.ios-button,.primary-action,.utility-button{border:0;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.ios-button:hover,.primary-action:hover,.utility-button:hover{transform:translateY(-1px)}.ios-button:disabled{opacity:1;cursor:default}.ios-button{width:100%;min-height:clamp(3.4rem,5.4vw,4.7rem);border-radius:1.65rem;padding:.82rem 1.3rem;font-size:clamp(1.2rem,2vw,1.85rem);font-weight:700}.ios-button--compact{min-height:2.9rem;border-radius:1.15rem;padding:.5rem .7rem;font-size:clamp(.96rem,1.5vw,1.2rem);line-height:1.1;white-space:nowrap}.ios-button--olive{background:linear-gradient(180deg,#b68e12,#9d7909);color:#fff9ea;box-shadow:0 .8rem 1.6rem #8a680833}.ios-button--cream{background:linear-gradient(180deg,#f9ecd0,#f2ddb2);color:#000;box-shadow:0 .7rem 1.4rem #8f681f29}.ios-button--blue{background:linear-gradient(180deg,#2291f7,#1380ef);color:#fff;box-shadow:0 .9rem 1.7rem #1674dd38}.menu-screen{position:relative;min-height:calc(100vh - 2rem);display:grid;place-items:center;padding:0 0 1.2rem}.menu-screen__preview{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.menu-screen__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c10049e}.menu-modal,.dialog-card{position:relative;z-index:1;width:min(100%,43rem);padding:clamp(1.5rem,3vw,2.4rem);border-radius:clamp(2rem,4vw,3rem);background:linear-gradient(180deg,#e89a28,#f1b534 64%,#f3cc4d);box-shadow:inset 0 0 0 .08rem #ffd68799,0 1.7rem 3rem #44240552}.menu-modal{width:min(100%,36rem);display:grid;justify-items:center;gap:1.15rem;text-align:center}.menu-modal__brand{margin-top:.3rem}.menu-modal__copy{max-width:18ch;margin:0;color:#fffdf7;font-size:clamp(1.45rem,3vw,2.35rem);font-weight:700;line-height:1.18}.menu-modal__actions{width:100%;display:grid;gap:.85rem}.scores-screen{min-height:calc(100vh - 2rem)}.scores-screen__sheet{width:min(100%,60rem);min-height:calc(100vh - 2rem);margin:0 auto;padding:clamp(1.6rem,3vw,2.6rem) clamp(1.1rem,3vw,2.4rem) 2rem;border-radius:clamp(2.6rem,5vw,4rem) clamp(2.6rem,5vw,4rem) 0 0;background:linear-gradient(180deg,#e69325,#efaa2d 48%,#f4c22f);box-shadow:inset 0 0 0 .08rem #ffd17a52,var(--shadow-ambient)}.scores-screen__content{max-width:78rem;margin:clamp(1.3rem,3vw,2.2rem) auto 0}.scores-screen__content h1{margin:0 0 clamp(1.1rem,2.5vw,1.8rem);color:#000;font-size:clamp(2.8rem,5.6vw,4.9rem);line-height:.95;letter-spacing:-.08em}.scores-screen__subtitle{margin:0 0 clamp(1rem,2vw,1.5rem);color:var(--ink-soft);font-size:clamp(1.5rem,2.8vw,2.6rem);font-weight:700;letter-spacing:-.04em}.scores-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}.score-row{display:flex;align-items:center;gap:1rem;min-height:clamp(4.6rem,6vw,6.5rem);padding:.85rem clamp(1.2rem,2vw,1.8rem);border-radius:2rem;background:linear-gradient(180deg,#faeac7f2,#f4d9a7f0);box-shadow:var(--shadow-soft)}.score-row__rank{color:#828594cc;font-size:clamp(1.5rem,2.4vw,2.35rem);font-weight:500}.score-row__value{color:#000;font-size:clamp(1.7rem,2.8vw,2.6rem);font-weight:800;letter-spacing:-.04em}.score-row--empty{color:#3f280eb8;font-size:clamp(1.2rem,2vw,1.8rem);font-weight:600}.solo-screen{width:min(100%,58rem);margin:0 auto;min-height:calc(100vh - 2rem);display:grid;align-content:start;gap:clamp(.8rem,1.4vw,1.15rem)}.solo-screen--preview{width:min(100%,58rem);margin:0 auto}.solo-screen__panel{position:relative;padding:clamp(1rem,1.5vw,1.35rem) clamp(.85rem,2vw,1.5rem) clamp(1rem,1.5vw,1.4rem);border-radius:clamp(2.4rem,4vw,3.6rem);background:radial-gradient(circle at 50% 52%,rgba(255,241,211,.3),transparent 38%),linear-gradient(180deg,#f7d59dfa,#f8d396f7);box-shadow:inset 0 0 0 .08rem #fff2cf80,var(--shadow-panel)}.solo-screen__brand{margin:0 auto .8rem;width:fit-content}.solo-screen__panel .close-orb{position:absolute;left:clamp(.7rem,1vw,1rem);top:clamp(.8rem,1vw,1rem)}.solo-screen__meta{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:clamp(.9rem,2vw,1.3rem) 0 clamp(.9rem,2vw,1.4rem)}.solo-screen__meta h2,.solo-screen__meta p{margin:0;color:var(--ink-soft);font-size:clamp(1.45rem,2.6vw,2.35rem);font-weight:700;letter-spacing:-.06em}.required-token-row{display:flex;justify-content:center;gap:clamp(.7rem,1vw,1.15rem)}.required-token{width:clamp(3rem,4.3vw,4.3rem);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#ffd41a,#f0bd0c);box-shadow:0 .8rem 1.5rem #77510b38;color:#5f3a08eb;font-size:clamp(1.4rem,2vw,1.95rem);font-weight:800}.solo-screen__section-caption{margin:.55rem 0 clamp(.9rem,1.8vw,1.25rem);text-align:center;color:var(--ink-soft);font-size:clamp(1.05rem,1.8vw,1.5rem);font-weight:500}.board-grid{display:grid;grid-template-columns:repeat(6,clamp(4.1rem,4.5vw,4.45rem));justify-content:center;gap:clamp(.4rem,.8vw,.72rem)}.board-slot,.board-tile-button{width:clamp(4.1rem,4.5vw,4.45rem);aspect-ratio:.78;min-height:auto}.board-slot{border-radius:1.3rem;border:.2rem dashed rgba(209,187,148,.9);background:linear-gradient(180deg,#fbefd4d1,#f7e8c8f0);box-shadow:inset 0 0 2rem #ffffff3d}.board-tile-button,.rack-tile-button{display:inline-flex;justify-content:center;align-items:stretch;padding:0;border:0;background:transparent;touch-action:none}.board-tile-button .tile-card{width:100%;min-width:0}.board-slot--drag-target{box-shadow:inset 0 0 0 .16rem #177fea6b,inset 0 0 2rem #ffffff3d,0 0 1.1rem #177fea3d}.board-tile-button--drag-target .tile-card{box-shadow:inset 0 .16rem #ffffff3d,inset 0 -.18rem #ffffff29,0 0 0 .16rem #177fea66,0 .9rem 1.6rem #4c87d257}.drag-ghost{position:fixed;pointer-events:none;z-index:30;filter:drop-shadow(0 .8rem 1.1rem rgba(42,22,0,.28));transform:scale(1.02)}.rack-tile-button{border-radius:1.8rem}.rack-tile-button--replace .tile-card:not(.tile-card--required){box-shadow:inset 0 -.18rem #ffffff3d,0 0 0 .18rem #ff60606b,0 .9rem 1.6rem #4c87d242}.solo-screen__message{min-height:clamp(2.8rem,4vw,3.6rem);margin:clamp(.95rem,1.8vw,1.2rem) auto 0;padding:.6rem 1rem;border-radius:999px;display:grid;place-items:center;width:min(100%,56rem);background:linear-gradient(180deg,#faefd7f0,#f8eacce6);color:#715f4dd1;font-size:clamp(.92rem,1.25vw,1.12rem);font-weight:500;letter-spacing:-.03em;text-align:center}.solo-screen__submit-wrap{width:min(100%,60rem);margin:clamp(.8rem,1.6vw,1.1rem) auto 0}.primary-action{width:100%;display:inline-flex;align-items:center;justify-content:center;min-height:clamp(3.35rem,5vw,4.35rem);border-radius:1.65rem;padding:.8rem 1.2rem;background:linear-gradient(180deg,#2393f7,#177fea);color:#fff;box-shadow:0 1.1rem 2rem #1b80eb47;font-size:clamp(1.22rem,1.8vw,1.6rem);font-weight:700}.primary-action:disabled{opacity:.56}.solo-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem}.solo-controls__cluster{display:flex;gap:.7rem}.utility-button{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1;min-height:clamp(2.8rem,4vw,3.35rem);padding:.45rem .95rem;border-radius:1.2rem;background:linear-gradient(180deg,#f9edd4,#f4deaf);color:#000;box-shadow:0 .8rem 1.5rem #815e1626;font-size:clamp(.96rem,1.35vw,1.2rem);font-weight:700}.utility-button--danger{background:linear-gradient(180deg,#ff5050,#ff3e3e);color:#fff;box-shadow:0 .8rem 1.5rem #ce42423d}.rack-area{width:100%;margin:0 auto;padding:1rem 1.5rem 1.35rem;display:grid;gap:.9rem;border-top:.18rem solid rgba(222,183,94,.45);border-radius:clamp(2.4rem,4vw,3.6rem);background:linear-gradient(180deg,#ecd28ff0,#f0d99ff0 34%,#f4e2b0fa);box-shadow:inset 0 .12rem #fff7dd8c,0 -.1rem #d6ab4a2e,0 1.2rem 2.2rem #784c0d29}.rack-tray{width:min(100%,52rem);margin:0 auto;min-height:13rem;padding:clamp(1rem,1.6vw,1.25rem) clamp(1rem,1.7vw,1.25rem);border-radius:clamp(2rem,4vw,2.8rem);background:radial-gradient(circle at center,#fffceee0,#fff9e36b 38%,#fff8dd00 72%),linear-gradient(180deg,#f7eed4fa,#f1e4b6fa);border:.08rem solid rgba(243,233,203,.95);box-shadow:inset 0 .16rem #ffffff73,0 1rem 2rem #815e162e;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-content:center;gap:clamp(.7rem,1vw,.95rem) clamp(.65rem,1.1vw,.95rem);justify-items:center}.tile-card{position:relative;width:min(100%,4.45rem);min-width:4.1rem;aspect-ratio:.78;border-radius:1rem;display:flex;align-items:center;justify-content:center;padding:.35rem .22rem .3rem;color:#fff;border:.08rem solid rgba(255,255,255,.28);box-shadow:inset 0 .16rem #ffffff3d,inset 0 -.18rem #ffffff29,0 .7rem 1.3rem #4c87d23d}.tile-card--standard{background:linear-gradient(180deg,#67adfb,#4e98f1)}.tile-card--required{background:linear-gradient(180deg,#ffd321,#f2bc0d);color:#5f3b08f2;box-shadow:inset 0 .16rem #ffffff3d,inset 0 -.18rem #ffffff29,0 .7rem 1.3rem #b8850f47}.tile-card--muted{opacity:.82}.tile-letter{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);font-size:clamp(2.05rem,2.45vw,2.55rem);font-weight:800;line-height:1;letter-spacing:-.05em}.tile-value{position:absolute;left:50%;bottom:.42rem;transform:translate(-50%);font-size:clamp(.92rem,.95vw,1rem);font-weight:600;line-height:1}.inline-summary-card{padding:1.3rem;border-radius:2rem;background:#f7e4bae0;box-shadow:var(--shadow-soft);display:grid;gap:1rem}.inline-summary-card__actions{display:grid;gap:.8rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;padding:1.2rem;display:grid;place-items:center;background:#1c10049e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dialog-card{width:min(100%,40rem)}.dialog-card__brand{margin-bottom:1rem}.dialog-copy{display:grid;gap:.5rem;margin-bottom:1rem;text-align:center}.dialog-copy h2{margin:0;color:#000;font-size:clamp(2.2rem,4vw,3.45rem);font-weight:800;letter-spacing:-.06em}.dialog-copy p{margin:0;color:#fff9eceb;font-size:clamp(1rem,1.8vw,1.2rem);font-weight:600}.modal-note{display:grid;gap:.7rem;padding:1.1rem 1.2rem;border-radius:1.5rem;background:#f8eacdd9;color:#3e270cdb}.modal-note p,.modal-score-list p{margin:0;display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.modal-note span,.modal-score-list span{color:#674c26bd}.modal-note strong,.modal-score-list strong{color:#000;font-size:1.02em}.modal-score-list{display:grid;gap:.5rem;margin-top:.7rem}.dialog-actions{margin-top:1rem;display:grid;gap:.8rem}.dialog-actions--single-center{grid-template-columns:minmax(0,1fr);justify-items:center}.dialog-actions--single-center .ios-button{width:min(100%,18rem)}.dialog-card--round-complete .dialog-actions.dialog-actions--single-center{grid-template-columns:minmax(0,1fr);justify-items:center}.dialog-card--round-complete .dialog-actions.dialog-actions--single-center .ios-button{width:min(100%,18rem)}.dialog-card--round-complete .dialog-copy h2{font-size:clamp(2rem,3.4vw,3rem)}.dialog-card--round-complete .dialog-copy p{font-size:clamp(.92rem,1.5vw,1.06rem)}.dialog-card--round-complete .modal-note{font-size:clamp(.94rem,1.35vw,1.02rem)}.dialog-card--round-complete .modal-note strong{font-size:.97em}.dialog-card--round-complete .ios-button{min-height:clamp(3rem,4.4vw,3.8rem);font-size:clamp(1rem,1.7vw,1.45rem)}.dialog-actions--two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-actions--game-over{gap:.55rem}@media(min-width:760px){.dialog-actions,.inline-summary-card__actions{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-modal__actions{gap:.9rem}}@media(min-width:960px){.menu-modal{width:min(100%,37rem)}.scores-screen__sheet{min-height:calc(100vh - 3rem);border-radius:clamp(3rem,4vw,4rem)}.solo-screen__panel{padding:1.35rem 1.9rem 1.6rem}.rack-tray{grid-template-columns:repeat(8,minmax(0,1fr))}.rack-area{width:100%}.tile-card{width:min(100%,4.55rem)}}@media(min-width:1180px){.menu-screen{min-height:calc(100vh - 3rem)}.menu-modal{width:min(100%,38rem);padding:2.2rem 2.4rem 2.5rem}.menu-modal__copy{max-width:17ch}.solo-screen__panel{min-height:30rem}.board-slot,.board-tile-button{width:4.45rem}.inline-summary-card__actions{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:959px){.menu-screen{padding-top:0}.solo-screen--preview .solo-controls,.solo-screen--preview .rack-tray{transform:scale(.97);transform-origin:top center}}@media(max-width:700px){.app-shell{padding:0 0 1rem}.menu-modal,.dialog-card{width:calc(100vw - 3rem)}.scores-screen__sheet{min-height:calc(100vh - 1rem);padding-inline:1rem}.scores-screen__content{margin-top:1.6rem}.solo-screen{gap:.8rem}.solo-screen__panel{margin-top:.75rem;margin-inline:.75rem;border-radius:1.9rem}.solo-controls{padding-inline:.6rem}.rack-area{width:100%;margin-top:clamp(4rem,14vh,7rem);margin-left:0;margin-right:0;padding-inline:.7rem;padding-bottom:1rem;border-radius:0}.board-grid{grid-template-columns:repeat(6,minmax(0,1fr));width:100%;gap:.35rem}.board-slot,.board-tile-button{width:100%}}@media(max-width:560px){.solo-screen__panel{margin-top:.6rem;margin-inline:.6rem;padding-left:.65rem;padding-right:.65rem;border-radius:1.75rem}.solo-screen__meta{margin-top:.75rem;gap:.5rem}.solo-screen__meta h2,.solo-screen__meta p{font-size:1.2rem}.required-token{width:2.7rem;font-size:1.2rem}.solo-screen__section-caption{font-size:.92rem}.board-slot,.board-tile-button{aspect-ratio:.78}.solo-screen__message{padding-inline:.75rem;font-size:.88rem}.scores-screen__content h1{font-size:2.6rem}.utility-button,.ios-button,.primary-action{border-radius:1.2rem}.solo-controls{flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding-inline:1rem}.solo-controls__cluster{width:auto;flex:0 0 auto;justify-content:flex-end;gap:.55rem;margin-left:auto}.utility-button{flex:0 0 auto;min-height:2.65rem;padding:.38rem .65rem;font-size:.92rem;white-space:nowrap}.utility-button--danger{width:6.15rem;min-width:0}.solo-controls__cluster .utility-button{flex:0 0 auto;min-width:0;width:5.45rem}.solo-controls__cluster .utility-button:last-child{width:5.15rem}.rack-area{gap:.85rem;padding-top:.85rem}.rack-tray{min-height:10.85rem;padding:.72rem .8rem;gap:.55rem .5rem}.tile-card{width:min(100%,3.8rem);min-width:3.55rem;aspect-ratio:.78;border-radius:.9rem}.tile-letter{font-size:1.85rem}.tile-value{bottom:.35rem;font-size:.82rem}}
