@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@600;700&display=swap");.mosaic-root{--mosaic-bg:#f7f8fa;--mosaic-ink:#101418;--mosaic-muted:#5c6570;--mosaic-line:#d5dbe3;--mosaic-glass:color-mix(in srgb,#9ec5ff 22%,transparent);--mosaic-glass-edge:color-mix(in srgb,#6aa0e8 55%,#ffffff);margin:0;padding:.75rem .75rem 1.75rem;background:var(--mosaic-bg);color:var(--mosaic-ink);text-align:left;border:1px solid #dde1e6}.mosaic-chrome{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.85rem;padding-bottom:.55rem;border-bottom:1px solid #dde1e6}.mosaic-chrome--select{align-items:center;display:grid;grid-template-columns:1fr auto 1fr}.mosaic-chrome--select .mosaic-chrome-link{justify-self:start}.mosaic-chrome--select .mosaic-chrome-title{justify-self:center}.mosaic-chrome--select .mosaic-chrome-sound{justify-self:end}.mosaic-chrome-link{font-size:.68rem;letter-spacing:.14em;color:var(--mosaic-muted);text-decoration:none}.mosaic-chrome-link:hover,.mosaic-chrome-title{color:var(--mosaic-ink)}.mosaic-chrome-title{font-size:.68rem;letter-spacing:.14em}.mosaic-lead{margin:0 0 1.75rem;font-size:.92rem;line-height:1.7;color:var(--mosaic-muted);letter-spacing:.02em}.mosaic-level-list{list-style:none;margin:0;padding:0;border-top:1px solid #dde1e6}.mosaic-level-section{margin:1.5rem 0 .5rem;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mosaic-muted)}.mosaic-level-section--user{margin-top:2.25rem}.mosaic-user-levels-empty{margin:0 0 1rem;font-size:.85rem;color:var(--mosaic-muted);letter-spacing:.02em}.mosaic-user-level-row{display:flex;align-items:stretch;gap:.55rem;border-bottom:1px solid #dde1e6}.mosaic-user-level-row .mosaic-level-btn{flex:1 1 auto;border-bottom:0;min-width:0}.mosaic-user-level-delete{flex:0 0 auto;align-self:center;margin:.55rem 0;letter-spacing:.12em;min-height:2.75rem;padding:.45rem .7rem}.mosaic-user-levels-msg{margin:.35rem 0 .75rem;font-size:.82rem;white-space:pre-line}.mosaic-user-levels-msg--ok{color:#2a6a3a}.mosaic-user-levels-msg--fail{color:#a83232}.mosaic-creator-field-hint{margin:.35rem 0 0;font-size:.72rem;line-height:1.4;color:var(--mosaic-muted)}.mosaic-hint-limit{display:flex;flex-wrap:wrap;gap:.4rem}.mosaic-hint-limit-btn{min-width:2.75rem;min-height:2.75rem;padding:.35rem .55rem;border:1px solid var(--mosaic-line);background:#fff;color:var(--mosaic-ink);font:inherit;font-size:.85rem;letter-spacing:.06em;cursor:pointer;touch-action:manipulation}.mosaic-hint-limit-btn.is-on{border-color:var(--mosaic-ink);background:var(--mosaic-ink);color:#fff}.mosaic-hint-limit-btn:disabled{opacity:.4;cursor:default}.mosaic-hud-hints{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .65rem;max-width:100%}.mosaic-hud-hints-none,.mosaic-hud-hints-remaining{font-size:.72rem;letter-spacing:.06em;color:var(--mosaic-muted);overflow-wrap:anywhere}.mosaic-hud-hints-none{color:#5c6570}.mosaic-delete-dialog{max-height:none;width:min(22rem,100%)}.mosaic-delete-title{margin:0 0 .45rem;font-size:.92rem;font-weight:700;letter-spacing:.04em;line-height:1.35}.mosaic-delete-body{margin:0 0 1.1rem;font-size:.82rem;line-height:1.45;color:var(--mosaic-muted)}.mosaic-delete-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.mosaic-challenge-list-row{display:flex;align-items:stretch;gap:.45rem}.mosaic-challenge-list-row .mosaic-challenge-list-btn{flex:1 1 auto;min-width:0}.mosaic-challenge-list-delete{flex:0 0 auto;align-self:center;letter-spacing:.12em;min-height:2.75rem;padding:.45rem .65rem}.mosaic-challenge-delete-msg{margin:.5rem 0 0;font-size:.82rem;white-space:pre-line}.mosaic-level-title-tag{font-weight:400;font-size:.75em;letter-spacing:.06em;color:var(--mosaic-muted)}.mosaic-level-btn{display:flex;width:100%;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.1rem 0;border:0;border-bottom:1px solid #dde1e6;background:transparent;color:var(--mosaic-ink);font:inherit;letter-spacing:.06em;cursor:pointer;text-align:left}.mosaic-level-btn:hover{color:var(--mosaic-muted)}.mosaic-level-btn.is-cleared .mosaic-level-meta:before{content:"✓ ";color:var(--mosaic-ink)}.mosaic-level-meta{font-size:.75rem;color:var(--mosaic-muted);letter-spacing:.08em}.mosaic-level-best{color:inherit}.mosaic-level-best-star{display:inline-block;background-image:linear-gradient(180deg,#cfe6ff,#58a7e6 45%,#2e7bcb 75%,#1a4f8c);background-size:100% 220%;background-position:0 0;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-size:.95em;line-height:1;animation:mosaic-star-pulse 10s ease-in-out infinite;will-change:background-position,opacity}.mosaic-level-best-star--perfect{background-image:none;background-clip:border-box;-webkit-background-clip:border-box;color:#1a4f8c;-webkit-text-fill-color:#1a4f8c;font-size:1.2em;font-weight:700;animation:none;opacity:1;will-change:auto}.mosaic-level-best--high{color:#2e7bcb;font-weight:700;letter-spacing:.04em}.mosaic-level-best--high .mosaic-level-best-num{font-family:Orbitron,ui-monospace,Cascadia Code,Consolas,monospace;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.08em;color:#2e7bcb}@keyframes mosaic-star-pulse{0%,to{background-position:0 0;opacity:.45}50%{background-position:0 100%;opacity:1}}.mosaic-play-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1.25rem}.mosaic-level-title{margin:0;font-size:1rem;font-weight:500;letter-spacing:.1em}.mosaic-play-spacer{width:4.5rem}.mosaic-hud{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.1rem;margin-bottom:1.25rem;font-size:.8rem;letter-spacing:.06em}.mosaic-hud-item{display:flex;gap:.45rem}.mosaic-hud-label{color:var(--mosaic-muted)}.mosaic-hud-target{font-weight:700;letter-spacing:.1em;color:var(--mosaic-ink);animation:mosaic-target-glow 5s ease-in-out infinite}@keyframes mosaic-target-glow{0%,86%,to{color:var(--mosaic-ink);text-shadow:none;filter:brightness(1)}90%,94%{color:#1a4f8c;text-shadow:0 0 10px color-mix(in srgb,#58a7e6 80%,transparent),0 0 22px color-mix(in srgb,#cfe6ff 70%,transparent);filter:brightness(1.25)}}.mosaic-btn{border:1px solid var(--mosaic-ink);background:var(--mosaic-ink);color:#fff;padding:.45rem .85rem;font:inherit;font-size:.72rem;letter-spacing:.14em;cursor:pointer;min-height:2.75rem;min-width:2.75rem;touch-action:manipulation}.mosaic-btn--ghost{background:transparent;color:var(--mosaic-ink)}.mosaic-btn--ghost.is-on{background:var(--mosaic-ink);color:#fff}.mosaic-btn--danger{background:#c23b3b;border-color:#a83232;color:#fff;box-shadow:0 0 12px color-mix(in srgb,#c23b3b 28%,transparent)}.mosaic-btn--danger:hover:not(:disabled){background:#b33434;border-color:#922c2c;box-shadow:0 0 14px color-mix(in srgb,#c23b3b 34%,transparent)}.mosaic-btn--danger:focus-visible{outline:2px solid #c23b3b;outline-offset:2px}.mosaic-btn--icon{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .55rem;min-width:2.25rem;min-height:2.25rem}.mosaic-btn--icon-sm{padding:.2rem .3rem;min-width:1.65rem;min-height:1.65rem}.mosaic-sound-icon{display:block}.mosaic-btn:disabled{opacity:.4;cursor:default}.mosaic-level-btn.is-locked{opacity:.38;cursor:not-allowed;color:var(--mosaic-muted)}.mosaic-level-btn.is-locked:hover,.mosaic-level-lock{color:var(--mosaic-muted)}.mosaic-level-lock{font-size:.7rem;letter-spacing:.12em}.mosaic-stage{display:flex;flex-direction:column;align-items:center;gap:1.75rem}@media (min-width:720px){.mosaic-stage{flex-direction:row;align-items:flex-start;justify-content:center;gap:2rem}}.mosaic-board-wrap{flex-shrink:0}.mosaic-board-cluster{display:flex;align-items:stretch;gap:.45rem}.mosaic-row-letters{display:flex;flex-direction:column;justify-content:stretch;width:1.6rem;flex-shrink:0}.mosaic-row-letter{display:flex;align-items:center;justify-content:center;font-family:ui-monospace,Consolas,monospace;font-size:.95rem;font-weight:600;letter-spacing:.04em;color:#9aa3ad}.mosaic-row-letter.is-correct{color:#14663a}.mosaic-row-letter.is-wrong{color:#b42318}.mosaic-row-letter.is-partial{color:#9aa3ad}.mosaic-board{position:relative;border:1px solid #9aa3ad;background:linear-gradient(180deg,#ffffff,#eef2f6);box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 70%,transparent);touch-action:none}.mosaic-board-cell{position:absolute;box-sizing:border-box;border:1px solid #e4e8ec;pointer-events:none}.mosaic-hint,.mosaic-on-board{position:absolute;z-index:2}.mosaic-on-board{--piece-tint:#6aa0e8}.mosaic-on-board[data-tint="1"]{--piece-tint:#5aaf9a}.mosaic-on-board[data-tint="2"]{--piece-tint:#7a8eb8}.mosaic-on-board[data-tint="3"]{--piece-tint:#5b9ab8}.mosaic-on-board[data-tint="4"]{--piece-tint:#6b8aa0}.mosaic-on-board[data-tint="5"]{--piece-tint:#4f96c8}.mosaic-on-board .mosaic-cell{box-shadow:inset 0 1px 0 color-mix(in srgb,#ffffff 78%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--piece-tint) 22%,transparent),0 0 0 1px color-mix(in srgb,var(--piece-tint) 42%,#ffffff)}.mosaic-on-board .mosaic-cell--0{color:#2f3740;background:linear-gradient(160deg,color-mix(in srgb,#ffffff 82%,var(--piece-tint)) 0,color-mix(in srgb,#d2d8e0 72%,var(--piece-tint)) 48%,color-mix(in srgb,#b0b8c4 58%,var(--piece-tint)) 100%);border-color:color-mix(in srgb,#6e7884 58%,var(--piece-tint))}.mosaic-on-board .mosaic-cell--1{color:#0a2a52;background:linear-gradient(160deg,color-mix(in srgb,#edf4ff 70%,var(--piece-tint)) 0,color-mix(in srgb,#a8c8f2 55%,var(--piece-tint)) 48%,color-mix(in srgb,#6a9ad8 45%,var(--piece-tint)) 100%);border-color:color-mix(in srgb,#2e6bb0 50%,var(--piece-tint))}.mosaic-hint{z-index:1;pointer-events:none;opacity:.35}.mosaic-reject-marker{position:absolute;z-index:5;display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:ui-monospace,Consolas,monospace;font-size:1rem;font-weight:700;color:#101418;background:color-mix(in srgb,#ffe08a 70%,#ffffff);border:1px dashed #101418;pointer-events:none;animation:mosaic-reject-in .35s ease both}.mosaic-reject-marker.is-met{z-index:6;background:color-mix(in srgb,#7ddea0 75%,#ffffff);border-style:solid;border-color:#1a6b3c;color:#0d3d22;animation:none}.mosaic-hint-marker{position:absolute;z-index:4;display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:ui-monospace,Consolas,monospace;font-size:1rem;font-weight:700;color:#101418;background:transparent;border:1px dashed #101418;pointer-events:none;animation:mosaic-reject-in .35s ease both}.mosaic-hint-marker.is-met{z-index:6;background:transparent;border-style:solid;border-color:#101418;color:#101418;animation:none}@keyframes mosaic-reject-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.mosaic-tray{flex-wrap:wrap;gap:1rem;align-content:flex-start;align-items:flex-start;width:min(100%,26rem);min-height:5rem}.mosaic-tray,.mosaic-tray-slot{display:flex;justify-content:center}.mosaic-tray-slot{position:relative;flex-shrink:0;align-items:center}.mosaic-tray-slot.is-empty{display:none}.mosaic-drop-preview{position:absolute;z-index:4;pointer-events:none;outline:2px solid #2f9e5d;outline-offset:-2px;background:color-mix(in srgb,#7ddea0 22%,transparent)}.mosaic-drop-preview.is-invalid{outline-color:#c23b3b;background:color-mix(in srgb,#ff8a8a 18%,transparent)}.mosaic-board.is-dragging{box-shadow:inset 0 0 0 1px color-mix(in srgb,#fff 70%,transparent),0 0 0 2px color-mix(in srgb,#6aa0e8 35%,transparent)}.mosaic-rotate-mini{position:absolute;right:-.2rem;bottom:-.2rem;z-index:2;width:1.75rem;height:1.75rem;padding:0;border:none;background:transparent;color:#101418;font-size:1.15rem;font-weight:700;line-height:1;cursor:pointer;touch-action:manipulation;text-shadow:0 0 2px #fff,0 0 4px #fff,1px 1px 0 #fff,-1px -1px 0 #fff}.mosaic-piece{position:relative;cursor:grab;touch-action:none;user-select:none}.mosaic-piece.is-selected{outline:1px dashed #7a8794;outline-offset:3px}.mosaic-cell{position:absolute;box-sizing:border-box;display:flex;align-items:center;justify-content:center;border-radius:3px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-weight:600;letter-spacing:0;color:#0d131a;background:linear-gradient(160deg,color-mix(in srgb,#ffffff 55%,transparent),color-mix(in srgb,#b7d4ff 28%,transparent) 48%,color-mix(in srgb,#8eb6ef 20%,transparent));border:1px solid color-mix(in srgb,#6f9fdc 50%,#ffffff);box-shadow:inset 0 1px 0 color-mix(in srgb,#ffffff 70%,transparent),inset 0 -1px 0 color-mix(in srgb,#4d7eb8 18%,transparent);backdrop-filter:blur(2px)}.mosaic-cell--0{color:#3d4650;background:linear-gradient(160deg,color-mix(in srgb,#ffffff 72%,transparent),color-mix(in srgb,#d5dbe3 50%,transparent) 48%,color-mix(in srgb,#b7c0cc 28%,transparent));border-color:color-mix(in srgb,#8a949f 55%,#ffffff)}.mosaic-cell--1{color:#0b2f5c;background:linear-gradient(160deg,color-mix(in srgb,#e8f2ff 70%,transparent),color-mix(in srgb,#9ec5ff 42%,transparent) 48%,color-mix(in srgb,#6aa0e8 26%,transparent));border-color:color-mix(in srgb,#2e7bcb 45%,#ffffff)}.mosaic-piece.is-ghost .mosaic-cell{background:transparent;border-style:dashed;box-shadow:none;color:#6a7682}.mosaic-drag-layer{left:0;top:0;z-index:40;opacity:.96;will-change:transform}.mosaic-clear,.mosaic-drag-layer{position:fixed;pointer-events:none}.mosaic-clear{inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center}.mosaic-clear--fireworks{background:color-mix(in srgb,#0a121c 12%,transparent)}.mosaic-clear--done,.mosaic-clear--reveal,.mosaic-clear--victory{pointer-events:none;background:color-mix(in srgb,#f7f8fa 72%,transparent)}.mosaic-clear--done{pointer-events:auto;background:color-mix(in srgb,#f7f8fa 90%,transparent)}.mosaic-clear-flash{position:absolute;inset:0;background:#ffffff;opacity:0;pointer-events:none;animation:mosaic-clear-flash .55s ease-out forwards;will-change:opacity}@keyframes mosaic-clear-flash{0%{opacity:.78}35%{opacity:.42}to{opacity:0}}.mosaic-hello--decoded{position:relative;z-index:2}.mosaic-fireworks-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.mosaic-hello{z-index:2;font-size:clamp(2rem,8vw,3.4rem);font-weight:500;letter-spacing:.28em;animation:mosaic-hello-in .8s ease both}.mosaic-hello,.mosaic-result{position:relative;color:#101418}.mosaic-result{z-index:3;margin-top:2rem;min-width:min(18rem,90vw);padding:1.25rem 1.5rem;border:1px solid #101418;background:#fff;text-align:left}.mosaic-result dl{margin:0 0 1.25rem}.mosaic-result dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;font-size:.85rem;letter-spacing:.04em}.mosaic-result dt{color:#5c6570}.mosaic-result-score{margin-top:.5rem;border-top:1px solid #dde1e6;padding-top:.65rem!important;font-size:1rem!important}.mosaic-result-actions{display:flex;flex-direction:column;gap:.55rem}.mosaic-result .mosaic-btn{width:100%}.mosaic-result .mosaic-btn--levels{width:auto;align-self:center;padding:.35rem .75rem;border:1px solid #c5ccd4;background:transparent;color:#5c6570;font-size:.72rem;letter-spacing:.06em;cursor:pointer}.mosaic-result .mosaic-btn--levels:hover{color:#101418;border-color:#101418}.mosaic-result--challenge{min-width:min(20rem,92vw);max-width:min(24rem,94vw);box-sizing:border-box;overflow-x:hidden}.mosaic-result-challenge-title{margin:0 0 1rem;font-size:.78rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#1a4f8c}.mosaic-result-challenge-stats{margin:0 0 1.25rem}.mosaic-result-challenge-stats>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.4rem 0;font-size:.9rem;letter-spacing:.04em}.mosaic-result-challenge-hero{display:grid!important;grid-template-columns:1fr 1fr;gap:.75rem 1rem;padding:.35rem 0 .85rem!important;margin-bottom:.35rem;border-bottom:1px solid #dde1e6}.mosaic-result-challenge-hero>div{display:flex;flex-direction:column;gap:.25rem}.mosaic-result-challenge-hero dt{font-size:.68rem;letter-spacing:.12em;color:#5c6570}.mosaic-result-challenge-score{font-family:Orbitron,ui-monospace,Consolas,monospace;font-size:clamp(1.85rem,8vw,2.4rem);font-weight:600;color:#2e7bcb;line-height:1.1;word-break:break-word}.mosaic-result-challenge-stars{font-size:clamp(1.45rem,6vw,1.85rem);letter-spacing:.08em;color:#1a4f8c;line-height:1.2}.mosaic-result-challenge-actions{gap:.65rem}.mosaic-result-challenge-actions .mosaic-btn,.mosaic-result-create-link{width:100%;min-height:2.75rem;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none}.mosaic-result-create-link{border:1px solid var(--mosaic-ink);background:transparent;color:var(--mosaic-ink);font:inherit;font-size:.72rem;letter-spacing:.14em;cursor:pointer;touch-action:manipulation}.mosaic-result-create-hint{margin:-.15rem 0 .35rem;font-size:.75rem;letter-spacing:.03em;color:#5c6570;text-align:center;overflow-wrap:anywhere}.mosaic-result--challenge .mosaic-creator-save-msg,.mosaic-result--challenge .mosaic-creator-status{margin:.75rem 0 0;overflow-wrap:anywhere}@keyframes mosaic-hello-in{0%{opacity:0;letter-spacing:.5em}to{opacity:1;letter-spacing:.28em}}@media (max-width:640px){.mosaic-root{padding:.5rem .5rem max(1.25rem,env(safe-area-inset-bottom))}.mosaic-stage{flex-direction:column;align-items:stretch;gap:1rem}.mosaic-tray{flex-wrap:wrap;justify-content:center;max-width:100%;width:100%;gap:.85rem 1.1rem;overflow-x:auto;padding-bottom:.35rem;row-gap:1.15rem}.mosaic-hud{gap:.5rem .65rem;align-items:center}.mosaic-hud .mosaic-btn{min-height:2.75rem;min-width:2.75rem}.mosaic-rotate-mini{right:-.35rem;bottom:-.35rem;width:2.75rem;height:2.75rem;font-size:1.35rem}.mosaic-level-btn{min-height:2.75rem;padding:.85rem 0;gap:.5rem}.mosaic-level-meta{font-size:.68rem;letter-spacing:.04em;text-align:right;white-space:nowrap}.mosaic-level-best--high{padding:0}.mosaic-result{width:min(100%,22rem);padding:1rem 1.1rem}.mosaic-play-top .mosaic-btn,.mosaic-result .mosaic-btn{min-height:2.75rem}}@media (prefers-reduced-motion:reduce){.mosaic-clear-flash,.mosaic-hello,.mosaic-level-best-star{animation:none}.mosaic-level-best-star{background-position:0 55%;opacity:.85}.mosaic-clear-flash{opacity:.2}}.mosaic-creator-entry{margin:-.75rem 0 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem}.mosaic-creator-entry-sep{color:var(--mosaic-muted);user-select:none}.mosaic-guide-trigger{appearance:none;border:1px solid color-mix(in srgb,#58a7e6 55%,#ffffff);background:color-mix(in srgb,#cfe6ff 28%,#ffffff);color:#1a4f8c;font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.12em;line-height:1.2;padding:.22rem .55rem;border-radius:3px;cursor:pointer;box-shadow:0 0 0 1px color-mix(in srgb,#cfe6ff 40%,transparent),0 0 12px color-mix(in srgb,#58a7e6 28%,transparent);transition:color .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}.mosaic-guide-trigger:hover{color:#0a2a52;border-color:color-mix(in srgb,#2e7bcb 60%,#ffffff);background:color-mix(in srgb,#cfe6ff 42%,#ffffff);box-shadow:0 0 0 1px color-mix(in srgb,#58a7e6 35%,transparent),0 0 16px color-mix(in srgb,#58a7e6 38%,transparent)}.mosaic-guide-trigger:focus-visible{outline:2px solid #2e7bcb;outline-offset:2px}.mosaic-guide-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1rem;background:color-mix(in srgb,#101418 42%,transparent)}.mosaic-guide-dialog{width:min(28rem,100%);max-height:min(88vh,40rem);overflow:auto;padding:1rem 1.05rem 1.15rem;border:1px solid var(--mosaic-line);border-radius:4px;background:var(--mosaic-bg);color:var(--mosaic-ink);box-shadow:0 0 0 1px color-mix(in srgb,#cfe6ff 35%,transparent),0 12px 36px color-mix(in srgb,#101418 18%,transparent)}.mosaic-guide-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.9rem;padding-bottom:.55rem;border-bottom:1px solid #dde1e6}.mosaic-guide-title{margin:0;font-size:.92rem;font-weight:700;letter-spacing:.06em;line-height:1.35;color:var(--mosaic-ink)}.mosaic-guide-close{flex-shrink:0;font-size:.68rem;letter-spacing:.12em;padding:.28rem .55rem}.mosaic-guide-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.85rem;counter-reset:mosaic-guide}.mosaic-guide-item{counter-increment:mosaic-guide}.mosaic-guide-item-heading{margin:0 0 .28rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:none;color:#2e7bcb}.mosaic-guide-item-heading:before{content:counter(mosaic-guide) ". ";color:var(--mosaic-muted);font-weight:600}.mosaic-guide-item-body{margin:0;font-size:.85rem;line-height:1.55;letter-spacing:.02em;color:var(--mosaic-muted)}@media (max-width:640px){.mosaic-creator-entry{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;align-items:stretch}.mosaic-creator-entry-sep{display:none}.mosaic-creator-entry .mosaic-chrome-link,.mosaic-creator-entry .mosaic-guide-trigger{display:inline-flex;align-items:center;justify-content:center;min-height:44px;box-sizing:border-box;text-align:center;padding:.35rem .45rem}.mosaic-creator-entry .mosaic-guide-trigger{grid-column:1/-1;width:100%;font-size:.74rem}.mosaic-guide-backdrop{align-items:flex-end;padding:0}.mosaic-guide-dialog{width:100%;max-height:min(90vh,36rem);border-radius:8px 8px 0 0;padding:1rem .9rem calc(1rem + env(safe-area-inset-bottom, 0px))}}.mosaic-creator-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem 1rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid #dde1e6}.mosaic-creator-form--primary{grid-template-columns:1fr;border-bottom:none;padding-bottom:0;margin-bottom:.75rem}.mosaic-creator-field{display:flex;flex-direction:column;gap:.35rem;font-size:.68rem;letter-spacing:.1em;color:var(--mosaic-muted)}.mosaic-creator-field--primary input[type=text]{font-size:1.05rem;min-height:2.85rem;letter-spacing:.04em}.mosaic-creator-field input[type=number],.mosaic-creator-field input[type=text],.mosaic-creator-field textarea{border:1px solid var(--mosaic-line);background:#fff;color:var(--mosaic-ink);font:inherit;font-size:.85rem;letter-spacing:.02em;padding:.45rem .55rem;min-height:2.5rem}.mosaic-creator-field textarea{resize:vertical;min-height:3.5rem;letter-spacing:.02em}.mosaic-creator-field--check{flex-direction:row;align-items:center;gap:.55rem}.mosaic-creator-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.25rem}.mosaic-creator-advanced{margin:0 0 1.25rem;padding-bottom:1rem;border-bottom:1px solid #dde1e6}.mosaic-creator-advanced>summary{cursor:pointer;font-size:.72rem;letter-spacing:.12em;color:var(--mosaic-muted);margin-bottom:.75rem;list-style:none}.mosaic-creator-advanced>summary::-webkit-details-marker{display:none}.mosaic-creator-advanced[open]>summary{color:var(--mosaic-ink)}.mosaic-creator-advanced .mosaic-creator-form{border-bottom:none;margin-bottom:0;padding-bottom:0}.mosaic-creator-save-msg,.mosaic-creator-status{margin:0 0 1rem;font-size:.85rem;color:var(--mosaic-muted)}.mosaic-creator-save-msg--ok{color:#2f6b45;font-weight:600}.mosaic-creator-status--fail{color:#8a3030}.mosaic-creator-verdict{margin:0 0 1rem;padding:.55rem .75rem;border:1px solid var(--mosaic-line);font-size:.85rem;letter-spacing:.12em;font-weight:700}.mosaic-creator-verdict--pass{border-color:#2f6b45;color:#2f6b45;background:color-mix(in srgb,#2f6b45 8%,transparent)}.mosaic-creator-verdict--fail{border-color:#8a3030;color:#8a3030;background:color-mix(in srgb,#8a3030 8%,transparent)}.mosaic-creator-panel{margin:0 0 1.25rem;padding-top:.75rem;border-top:1px solid #dde1e6}.mosaic-creator-h{margin:0 0 .65rem;font-size:.72rem;letter-spacing:.14em;font-weight:600;color:var(--mosaic-ink)}.mosaic-creator-h--sub{margin-top:.85rem}.mosaic-creator-feedback{margin-top:1rem;padding-top:.85rem;border-top:1px solid #dde1e6}.mosaic-creator-dl--metrics{margin-top:.35rem}.mosaic-creator-reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.mosaic-creator-reasons>li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem .65rem;font-size:.85rem}.mosaic-creator-reason-code{font-size:.78rem;letter-spacing:.04em;color:#8a3030;background:color-mix(in srgb,#8a3030 8%,transparent);padding:.15rem .4rem}.mosaic-creator-reason-label{color:var(--mosaic-muted)}.mosaic-creator-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.55rem 1rem;margin:0}.mosaic-creator-dl>div{display:flex;flex-direction:column;gap:.15rem}.mosaic-creator-dl dt{font-size:.62rem;letter-spacing:.12em;color:var(--mosaic-muted)}.mosaic-creator-dl dd{margin:0;font-size:.85rem;word-break:break-word}.mosaic-creator-list{margin:.75rem 0 0;padding-left:1.1rem;font-size:.85rem;color:var(--mosaic-muted)}.mosaic-creator-play-link{margin:1rem 0 0}.mosaic-creator-bits-wrap{margin-top:1rem}.mosaic-creator-bits{display:grid;gap:2px;width:min(100%,16rem);margin-top:.35rem;padding:.35rem;border:1px solid var(--mosaic-line);background:color-mix(in srgb,var(--mosaic-line) 35%,transparent)}.mosaic-creator-bit{aspect-ratio:1;min-height:0;border-radius:1px}.mosaic-creator-bit--0{background:#e8ecf1}.mosaic-creator-bit--1{background:var(--mosaic-ink)}.mosaic-creator-candidates-wrap{margin-top:1rem}.mosaic-creator-candidates{list-style:none;margin:.35rem 0 0;padding:0;display:flex;flex-direction:column;gap:.4rem}.mosaic-creator-candidate{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .65rem;padding:.4rem .5rem;border:1px solid #dde1e6;font-size:.8rem}.mosaic-creator-candidate--selected{border-color:var(--mosaic-ink);background:color-mix(in srgb,var(--mosaic-ink) 4%,transparent)}.mosaic-creator-candidate-idx{font-weight:600;color:var(--mosaic-ink)}.mosaic-creator-candidate-verdict{letter-spacing:.08em;font-weight:700;font-size:.72rem}.mosaic-creator-candidate-verdict--pass{color:#2f6b45}.mosaic-creator-candidate-verdict--fail{color:#8a3030}.mosaic-creator-candidate-meta{color:var(--mosaic-muted);font-size:.75rem}.mosaic-creator-level-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.mosaic-creator-level-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.55rem 0;border-bottom:1px solid #dde1e6}.mosaic-creator-level-meta{display:flex;flex-direction:column;gap:.2rem;min-width:0}.mosaic-creator-level-title{font-size:.9rem;color:var(--mosaic-ink);word-break:break-word}.mosaic-creator-level-sub{font-size:.72rem;color:var(--mosaic-muted);word-break:break-word}.mosaic-creator-level-actions{display:flex;flex-direction:column;gap:.35rem;flex-shrink:0;align-items:stretch}.mosaic-creator-level-play{flex-shrink:0;text-decoration:none;text-align:center}.mosaic-showcase .mosaic-challenge-card{margin-top:.25rem}.mosaic-creator-share{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .55rem;margin-top:.35rem;max-width:100%}.mosaic-creator-share-label{font-size:.72rem;color:var(--mosaic-muted);flex-shrink:0}.mosaic-creator-share-hint{flex:1 1 100%;margin:0}.mosaic-creator-share-code{font-size:.68rem;line-height:1.35;color:var(--mosaic-ink);word-break:break-all;max-width:min(100%,36rem);flex:1 1 8rem;padding:.2rem 0}.mosaic-creator-share-copy{flex-shrink:0;font-size:.75rem;padding:.25rem .55rem}.mosaic-creator-share-import{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid #dde1e6}.mosaic-user-credits{margin-top:1.5rem;padding-top:.85rem;border-top:1px solid var(--mosaic-line);display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;letter-spacing:.04em}.mosaic-user-credits-block{display:flex;flex-direction:column;gap:.12rem}.mosaic-user-credits-label{font-size:.62rem;color:var(--mosaic-muted);text-transform:none}.mosaic-user-credits-creator{font-size:.92rem;font-weight:500;color:var(--mosaic-ink)}.mosaic-user-credits-developer{font-size:.46rem;font-weight:400;color:var(--mosaic-muted);letter-spacing:.06em}a.mosaic-developer-link,a.mosaic-user-credits-developer{color:inherit;text-decoration:none}a.mosaic-developer-link:hover,a.mosaic-user-credits-developer:hover{text-decoration:underline}.mosaic-showcase .mosaic-developer-link{font-size:.7em;color:var(--mosaic-muted);letter-spacing:.04em}.mosaic-user-credits-block--dev .mosaic-user-credits-label{font-size:.5rem}.mosaic-feedback-save-error{margin:.65rem .85rem 0}.mosaic-challenge-tabs{display:flex;gap:.35rem;margin:0 0 1.15rem;padding-bottom:.65rem;border-bottom:1px solid #dde1e6}.mosaic-challenge-share-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:.25rem}.mosaic-shared-challenge{margin:0 0 1.15rem}.mosaic-shared-challenge-msg{margin:0 0 1rem}.mosaic-user-level-share{flex-shrink:0}.mosaic-challenge-tab{appearance:none;border:1px solid transparent;background:transparent;color:var(--mosaic-muted);font:inherit;font-size:.85rem;letter-spacing:.04em;padding:.35rem .7rem;cursor:pointer;border-radius:4px}.mosaic-challenge-tab.is-active{color:var(--mosaic-ink,#1a1f26);border-color:#dde1e6;background:#f4f6f8}.mosaic-challenge-import{margin-bottom:1.25rem}.mosaic-challenge-card{margin-top:.25rem}.mosaic-challenge-title{margin-bottom:.85rem}.mosaic-challenge-back{margin-bottom:.75rem}.mosaic-challenge-play{margin-top:1rem}.mosaic-challenge-collection{margin-top:.25rem}.mosaic-challenge-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.mosaic-challenge-list-btn{appearance:none;width:100%;text-align:left;display:flex;flex-direction:column;gap:.2rem;padding:.7rem .85rem;border:1px solid #dde1e6;border-radius:6px;background:#fafbfc;color:inherit;font:inherit;text-decoration:none;cursor:pointer;box-sizing:border-box}.mosaic-challenge-list-btn:hover{border-color:#c5ccd4;background:#f4f6f8}.mosaic-challenge-list-title{font-weight:600;font-size:.95rem}.mosaic-challenge-list-meta{color:var(--mosaic-muted);font-size:.78rem;line-height:1.35}.mosaic-challenge-list-btn.is-cleared{border-color:#c5d0c8;background:#f6faf7}.mosaic-challenge-cleared-badge{display:inline-block;margin-right:.45rem;padding:.1rem .4rem;border:1px solid #b7c9bb;border-radius:3px;background:#e8f0ea;color:var(--mosaic-ink,#1a1f26);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}.mosaic-challenge-feedback{color:var(--mosaic-ink,#1a1f26)}@media (max-width:520px){.mosaic-challenge-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.mosaic-challenge-tab{text-align:center;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.mosaic-user-level-row{flex-wrap:wrap;padding-bottom:.35rem}.mosaic-user-level-row .mosaic-level-btn{flex:1 1 100%}.mosaic-user-level-delete,.mosaic-user-level-share{width:100%;margin:0 0 .45rem}.mosaic-challenge-list-row{flex-wrap:wrap}.mosaic-challenge-list-row .mosaic-challenge-list-btn{flex:1 1 100%}.mosaic-challenge-list-delete{width:100%}}.mosaic-binary-message-panel{max-width:36rem}.mosaic-binary-message-form{display:flex;flex-direction:column;gap:1rem}.mosaic-binary-message-text-field input[type=text]{width:100%;max-width:100%;box-sizing:border-box}.mosaic-binary-message-remaining{font-size:.72rem;letter-spacing:.06em;color:var(--mosaic-muted)}.mosaic-binary-message-binary-field textarea,.mosaic-binary-message-binary-input{width:100%;max-width:100%;box-sizing:border-box;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.82rem;letter-spacing:.04em;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:hidden;min-height:6rem;resize:vertical;border:1px solid color-mix(in srgb,#2e7bcb 35%,var(--mosaic-line));background:color-mix(in srgb,#cfe6ff 22%,#fff);color:var(--mosaic-ink);padding:.55rem .65rem}.mosaic-binary-message-text-field{border-left:3px solid color-mix(in srgb,#58a7e6 40%,var(--mosaic-line));padding-left:.65rem}.mosaic-binary-message-binary-field{border-left:3px solid #2e7bcb;padding-left:.65rem}.mosaic-binary-message-output{margin:0;padding:.75rem .85rem;border:1px solid color-mix(in srgb,#2e7bcb 28%,var(--mosaic-line));background:color-mix(in srgb,#cfe6ff 18%,#f7f8fa);max-width:100%;box-sizing:border-box;overflow-x:hidden}.mosaic-binary-message-output-label{display:block;font-size:.68rem;letter-spacing:.12em;color:var(--mosaic-muted);margin-bottom:.4rem}.mosaic-binary-message-output-text{margin:0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.82rem;letter-spacing:.04em;line-height:1.55;color:#1a4f8c;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:hidden;max-width:100%}.mosaic-binary-message-actions{margin-top:0}.mosaic-binary-message-actions .mosaic-btn{min-height:2.75rem;min-width:2.75rem}@media (max-width:640px){.mosaic-binary-message-panel{max-width:100%}.mosaic-binary-message-actions{flex-direction:column}.mosaic-binary-message-actions .mosaic-btn{width:100%}}