@font-face{font-family:Instrument Serif;src:url(/games/cipher-post/play/fonts/instrument-serif-400.woff2)format("woff2");font-display:swap}@font-face{font-family:Instrument Serif;font-style:italic;src:url(/games/cipher-post/play/fonts/instrument-serif-italic.woff2)format("woff2");font-display:swap}@font-face{font-family:Plex Cond;font-weight:400;src:url(/games/cipher-post/play/fonts/plex-condensed-400.woff2)format("woff2");font-display:swap}@font-face{font-family:Plex Cond;font-weight:500;src:url(/games/cipher-post/play/fonts/plex-condensed-500.woff2)format("woff2");font-display:swap}@font-face{font-family:Plex Cond;font-weight:600;src:url(/games/cipher-post/play/fonts/plex-condensed-600.woff2)format("woff2");font-display:swap}@font-face{font-family:Plex Cond;font-weight:700;src:url(/games/cipher-post/play/fonts/plex-condensed-700.woff2)format("woff2");font-display:swap}:root{--serif:"Instrument Serif", Georgia, serif;--sans:"Plex Cond", "IBM Plex Sans Condensed", "Arial Narrow", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);background-image:var(--surface);color:var(--ink);font-family:var(--sans);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-size:16px;line-height:1.35;overflow:hidden}#app{max-width:520px;height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);margin:0 auto;position:relative}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3{margin:0;font-weight:400}.btn{background:var(--btn);width:100%;color:var(--btn-ink);border:1.5px solid var(--btn-edge);letter-spacing:.02em;box-shadow:0 2px 0 var(--btn-edge);border-radius:4px;flex-direction:column;align-items:center;gap:1px;padding:13px 18px;font-size:17px;font-weight:600;transition:transform 80ms;display:flex}.btn:active{box-shadow:none;transform:translateY(2px)}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-edge);box-shadow:0 2px 0 var(--accent-edge)}.btn--quiet{box-shadow:none;color:var(--ink);text-underline-offset:3px;background:0 0;border-color:#0000;font-weight:500;text-decoration:underline;text-decoration-thickness:1px}.btn__title{font-size:18px}.btn__sub{opacity:.85;font-size:14px;font-weight:400}.icon-btn{width:44px;height:44px;color:var(--ink);border-radius:50%;place-items:center;display:grid}.icon-btn:active{background:var(--press)}.bar{grid-template-columns:44px 1fr 44px;align-items:center;min-height:54px;padding:6px 8px 2px;display:grid}.bar h2{text-align:center;font-family:var(--serif);font-size:23px;line-height:1.05}.bar h2 small{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11.5px;font-weight:600;display:block}.bar__aside{text-align:center;color:var(--muted);font-weight:600}.home{flex-direction:column;justify-content:center;gap:28px;height:100%;padding:20px 28px 28px;display:flex;position:relative}.home__settings{position:absolute;top:8px;right:8px}.home__brand{text-align:center}.envelope{width:min(78%,300px);filter:drop-shadow(0 6px 10px var(--shadow));margin:0 auto 10px;display:block}.envelope__letters text{font-family:var(--sans);fill:var(--card-ink);letter-spacing:4px;font-weight:600}.logo{font-family:var(--serif);letter-spacing:-.01em;font-size:58px;line-height:1}.logo em{color:var(--accent-text)}.home__tag{color:var(--muted);margin:8px 0 0;font-size:17px}.home__menu{gap:12px;display:grid}.play{grid-template-rows:auto minmax(0,1fr) auto auto auto auto;height:100%;display:grid}.desk{min-height:0;padding:6px 14px 8px;display:flex}.postcard{background:var(--border-pattern);box-shadow:0 1px 0 var(--shadow), 0 10px 22px -8px var(--shadow);border-radius:3px;flex:1;min-height:0;padding:9px;display:flex;transform:rotate(-.6deg)}.postcard__inner{background:var(--card);background-image:var(--card-surface);color:var(--card-ink);flex:1;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:10px 12px 12px;display:grid;position:relative;overflow:hidden}.postcard__head{border-bottom:1px solid var(--card-rule);justify-content:space-between;align-items:flex-start;gap:8px;padding-bottom:8px;display:flex}.postcard__from{font-family:var(--serif);margin:4px 0 0;font-size:26px;font-style:italic;line-height:1}.postcard__from small{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--card-muted);margin-bottom:4px;font-size:11px;font-style:normal;font-weight:600;display:block}.postcard__franking{flex:none;width:104px;height:64px;position:relative}.postcard__franking .stamp{width:52px;position:absolute;top:0;right:0;transform:rotate(2deg)}.postcard__franking .postmark{opacity:.75;width:62px;position:absolute;top:2px;left:0;transform:rotate(-12deg)}.stamp{filter:drop-shadow(0 1px 1px var(--shadow));display:block}.stamp__country{font:600 7.5px var(--sans);letter-spacing:.08em}.stamp__denom{font:italic 15px var(--serif)}.postmark__ring{font:600 11.5px var(--sans);letter-spacing:.12em}.postmark__date{font:600 13px var(--sans);letter-spacing:.06em}.message{--tile:30px;place-content:center;column-gap:calc(var(--tile) * .55);row-gap:calc(var(--tile) * .3);touch-action:none;flex-wrap:wrap;min-height:0;padding:10px 0 2px;display:flex;overflow:hidden}.word{white-space:nowrap;gap:2px;display:inline-flex}.p{font-size:calc(var(--tile) * .8);line-height:calc(var(--tile) * 1.08);align-self:flex-start;margin:0 -1px;font-weight:600}.t{width:var(--tile);cursor:pointer;border-radius:3px;flex-direction:column;align-items:center;transition:background .12s;display:flex}.t b{width:100%;height:calc(var(--tile) * 1.08);line-height:calc(var(--tile) * 1.08);text-align:center;font-size:calc(var(--tile) * .8);color:var(--decode);border-bottom:2px solid var(--tile-line);font-weight:600;display:block}.t i{font-style:normal;font-size:calc(var(--tile) * .46);color:var(--cipher);letter-spacing:.03em;font-weight:500;line-height:1.3}.t--locked b{color:var(--given);border-bottom-style:dotted}.t--sel{background:var(--sel)}.t--sel b{border-bottom-color:var(--accent)}.t--preview b{color:var(--accent-text)}.t--flash b{animation:.7s ease-out flash}@keyframes flash{0%{color:var(--accent-text);transform:scale(1.5)}}.postcard__cancel{pointer-events:none;opacity:0;place-items:center;display:grid;position:absolute;inset:0}.postmark--big{width:min(64%,230px);transform:rotate(-16deg)}.play--won .postcard__cancel{animation:.42s cubic-bezier(.2,.9,.3,1.2) .15s forwards cancel}@keyframes cancel{0%{opacity:0;transform:scale(1.9)}to{opacity:.55;transform:scale(1)}}.play--won .postcard,.play--done .postcard{transition:transform .4s;transform:rotate(.4deg)}.play--done .postcard__cancel{opacity:.4}.play--won .tools,.play--done .tools,.play--won .wheel,.play--done .wheel{opacity:.4;pointer-events:none}.freq{scrollbar-width:none;gap:4px;padding:2px 14px 4px;display:flex;overflow-x:auto}.freq::-webkit-scrollbar{display:none}.chip{background:var(--chip);border:1px solid var(--chip-edge);min-width:34px;color:var(--ink);border-radius:3px;flex:none;grid-template-rows:auto auto;grid-template-columns:auto auto;align-items:baseline;column-gap:1px;padding:3px 5px 2px;display:grid}.chip i{font-size:15px;font-style:normal;font-weight:600}.chip small{color:var(--muted);font-size:10.5px;font-weight:600}.chip b{text-align:center;min-height:15px;color:var(--accent-text);border-top:1px solid var(--chip-edge);grid-area:2/1/auto/-1;font-size:13px;line-height:15px}.chip.t--sel{background:var(--sel);color:var(--card-ink);border-color:var(--accent)}.chip.t--sel small{color:var(--card-ink)}.chip.t--locked{opacity:.55}.note{text-align:center;min-height:22px;color:var(--muted);margin:0;padding:0 16px;font-size:14.5px}.note--warn{color:var(--accent-text);font-weight:600}.wheel-host{padding:2px 10px}.wheel{--slot:42px;touch-action:none;background:var(--wheel);height:60px;box-shadow:inset 0 2px 6px var(--shadow), inset 0 -1px 0 var(--wheel-edge);cursor:grab;border-radius:6px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000);mask-image:linear-gradient(90deg,#0000,#000 14% 86%,#0000)}.wheel--turning{cursor:grabbing}.wheel__track{position:absolute;top:0;bottom:0;left:50%}.wheel__cell{top:0;left:calc(var(--slot) / -2);width:var(--slot);height:60px;color:var(--wheel-ink);pointer-events:none;will-change:transform;place-items:center;font-size:27px;font-weight:600;display:grid;position:absolute}.wheel__cell.is-used{color:var(--wheel-used);text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}.wheel__cell.is-locked{color:var(--wheel-used);opacity:.6;text-underline-offset:5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:2px}.wheel__cell.is-mine{color:var(--accent-text)}.wheel__window{width:calc(var(--slot) + 8px);margin-left:calc((var(--slot) + 8px) / -2);border:2px solid var(--accent);pointer-events:none;box-shadow:0 0 0 999px var(--wheel-dim);border-radius:5px;position:absolute;top:5px;bottom:5px;left:50%}.play--sliding .wheel__window{border-width:3px}.tools{grid-template-columns:repeat(3,1fr);gap:6px;padding:6px 12px 10px;display:grid}.tool{color:var(--ink);border-radius:4px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:13.5px;font-weight:500;display:flex}.tool:active{background:var(--press)}.tool:disabled{opacity:.4}.tool--reveal{color:var(--accent-text);font-weight:600}.album,.settings{flex-direction:column;height:100%;display:flex}.album__list{flex:1;padding:4px 14px 28px;overflow-y:auto}.sheet-set{background:var(--album-page);box-shadow:0 1px 3px var(--shadow);color:var(--album-ink);border-radius:4px;margin:10px 0 18px;padding:12px 10px 14px}.sheet-set h3{font-family:var(--serif);align-items:baseline;gap:8px;padding:0 4px 8px;font-size:22px;display:flex}.sheet-set h3 span{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--album-muted);font-size:11.5px;font-weight:600}.sheet-set h3 small{font-family:var(--sans);color:var(--album-muted);margin-left:auto;font-size:13px;font-weight:600}.sheet-set__lock{color:var(--album-muted);margin:-4px 4px 8px;font-size:13.5px}.album__grid{grid-template-columns:repeat(4,1fr);gap:10px 8px;display:grid}.slot{color:var(--album-ink);flex-direction:column;align-items:center;gap:3px;display:flex}.slot small{color:var(--album-muted);white-space:nowrap;font-size:11px}.slot .stamp{width:100%}.slot__hinge{aspect-ratio:84/100;border:1.5px dashed var(--album-rule);width:100%;color:var(--album-muted);text-align:center;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:2px;font-size:11px;display:flex;overflow:hidden}.slot__hinge b{font-family:var(--serif);color:var(--album-ink);font-size:19px;font-weight:400}.slot--going .slot__hinge{border-style:solid;border-color:var(--accent)}.slot--locked{opacity:.45;cursor:default}.slot .stamp__cancel{opacity:.7}.sheet{z-index:10;background:var(--scrim);place-items:center;padding:20px;animation:.2s fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet__card{background:var(--card);background-image:var(--card-surface);width:min(100%,400px);max-height:100%;color:var(--card-ink);border:8px solid #0000;border-image:var(--border-pattern) 12;box-shadow:0 18px 40px var(--shadow);border-radius:4px;padding:22px 22px 18px;font-size:16px;animation:.28s cubic-bezier(.2,.9,.3,1.1) rise;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(24px)rotate(-2deg)}}.sheet__card h2{font-family:var(--serif);margin-bottom:6px;font-size:32px}.sheet__card p{margin:8px 0}.sheet__card .btn--quiet{color:var(--card-ink)}.howto__demo{--tile:30px;font-family:var(--sans);justify-content:center;gap:3px;margin:8px 0 10px;display:flex}.howto__small{color:var(--card-muted);font-size:14.5px}.howto .btn{margin-top:14px}.win{text-align:center}.win__kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--card-muted);font-size:12px;font-weight:600}.win__stamp{width:86px;margin:4px auto 6px;animation:.5s cubic-bezier(.2,.9,.3,1.25) .1s backwards stampin;transform:rotate(3deg)}@keyframes stampin{0%{opacity:0;transform:scale(1.8)rotate(-10deg)}}.win__saying{font-family:var(--serif);margin:6px 0 4px;font-size:30px;font-style:italic;line-height:1.08}.win__score{font-weight:600}.win__sub{color:var(--card-muted);font-size:14.5px}.win__menu{gap:6px;margin-top:12px;display:grid}.settings{padding-bottom:24px;overflow-y:auto}.settings>h3,.settings>.toggle,.settings>.looks,.settings>.btn,.settings>.credits{width:auto;margin-left:18px;margin-right:18px}.settings>h3{font-family:var(--serif);margin-top:16px;margin-bottom:8px;font-size:24px}.looks{gap:8px;display:grid}.look{text-align:left;border:1.5px solid var(--btn-edge);background:var(--btn);color:var(--btn-ink);border-radius:4px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;column-gap:12px;padding:10px 12px;display:grid}.look--on{border-color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}.look__sw{grid-row:1/3;align-self:center;display:flex}.look__sw i{width:18px;height:34px}.look__sw i:first-child{border-radius:3px 0 0 3px}.look__sw i:last-child{border-radius:0 3px 3px 0}.look__name{font-weight:600}.look__blurb{opacity:.8;font-size:13.5px}.toggle{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;padding:10px 0;font-size:17px;display:flex}.toggle input{opacity:0;position:absolute}.toggle i{background:var(--rule);border-radius:13px;width:46px;height:26px;transition:background .15s;position:relative}.toggle i:after{content:"";background:var(--btn);border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked+i{background:var(--accent)}.toggle input:checked+i:after{transform:translate(20px)}.toggle input:focus-visible+i{outline:2px solid var(--accent);outline-offset:2px}.settings>.btn{margin-top:8px}.credits{color:var(--muted);text-align:center;margin-top:18px;font-size:13.5px}.credits a{color:inherit}@media (height<=680px){.postcard__head{padding-bottom:4px}.postcard__franking{width:86px;height:50px}.postcard__franking .stamp{width:42px}.postcard__franking .postmark{width:50px}.postcard__from{font-size:21px}.wheel,.wheel__cell{height:52px}.logo{font-size:46px}.home{gap:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root,[data-theme=airmail]{--bg:#cfdad8;--surface:repeating-linear-gradient(0deg, #ffffff1f 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, #1c3d8c0a 0 1px, transparent 1px 5px);--ink:#1b2b55;--muted:#4d5e7c;--press:#1b2b5514;--rule:#1b2b5533;--shadow:#1b2b5547;--accent:#c8303c;--accent-edge:#8e1f29;--accent-ink:#fff8f0;--accent-text:#b8222f;--btn:#f7f1e3;--btn-ink:#1b2b55;--btn-edge:#9fb0bf;--chev-a:#c8303c;--chev-b:#1c3d8c;--chev-gap:#f7f1e3;--border-pattern:repeating-linear-gradient(135deg, var(--chev-a) 0 13px, var(--chev-gap) 13px 20px, var(--chev-b) 20px 33px, var(--chev-gap) 33px 40px);--card:#f7f1e3;--card-surface:radial-gradient(ellipse at 20% 0%, #fff9, transparent 60%), radial-gradient(ellipse at 90% 100%, #b5965a1f, transparent 60%);--card-ink:#1b2b55;--card-muted:#5d6a85;--card-rule:#1b2b552e;--decode:#1b2b55;--cipher:#8a6f52;--given:#3e6b4f;--tile-line:#1b2b5566;--sel:#fde7a3;--postmark:#2d4aa0;--stamp-paper:#fdfaf2;--st0:#c8303c;--st1:#1c3d8c;--st2:#2c7656;--st3:#b5702a;--chip:#f7f1e3b3;--chip-edge:#1b2b552e;--wheel:#f7f1e3;--wheel-edge:#ffffffb3;--wheel-ink:#1b2b55;--wheel-used:#1b2b5561;--wheel-dim:#1b2b5508;--album-page:#f3eee2;--album-ink:#1b2b55;--album-muted:#5d6a85;--album-rule:#1b2b554d;--scrim:#141e3c73}[data-theme=telegram]{--bg:#4a3526;--surface:repeating-linear-gradient(92deg, #00000012 0 2px, transparent 2px 9px, #ffdcaa08 9px 11px, transparent 11px 23px);--ink:#f1e3c4;--muted:#c9b48f;--press:#f1e3c41a;--rule:#f1e3c438;--shadow:#140a0473;--accent:#b5452c;--accent-edge:#7a2d1f;--accent-ink:#fbefd6;--accent-text:#e9825f;--btn:#ecdcb6;--btn-ink:#3a2a1b;--btn-edge:#a88a5c;--chev-a:#7a2d1f;--chev-b:#5d5a26;--chev-gap:#ecdcb6;--border-pattern:repeating-linear-gradient(135deg, var(--chev-a) 0 13px, var(--chev-gap) 13px 20px, var(--chev-b) 20px 33px, var(--chev-gap) 33px 40px);--card:#ecdcb6;--card-surface:radial-gradient(ellipse at 80% 10%, #fff8e180, transparent 55%), radial-gradient(ellipse at 10% 95%, #8c5f282e, transparent 60%);--card-ink:#3a2a1b;--card-muted:#6e5638;--card-rule:#3a2a1b38;--decode:#2c1f13;--cipher:#8a5a3a;--given:#5d5a26;--tile-line:#3a2a1b73;--sel:#f7e9b0;--postmark:#5b2a4a;--stamp-paper:#f6ecd2;--st0:#7a2d1f;--st1:#4d5a2a;--st2:#2f4a5c;--st3:#8a6a1f;--chip:#ecdcb61f;--chip-edge:#f1e3c440;--wheel:#ecdcb6;--wheel-edge:#fff5dc80;--wheel-ink:#2c1f13;--wheel-used:#3a2a1b66;--wheel-dim:#3a2a1b0a;--album-page:#ecdcb6;--album-ink:#3a2a1b;--album-muted:#6e5638;--album-rule:#3a2a1b59;--scrim:#140a048c}[data-theme=telegram] .t b{background:linear-gradient(#f8eed4,#f2e3bd);border-bottom:0;box-shadow:0 1px #3a2a1b40}[data-theme=telegram] .t.t--empty b{background:#3a2a1b14;box-shadow:inset 0 -2px #3a2a1b4d}[data-theme=telegram] .t.t--sel{background:0 0}[data-theme=telegram] .t.t--sel b{background:var(--sel);box-shadow:inset 0 -3px 0 var(--accent)}[data-theme=telegram] .chip.t--sel{color:#3a2a1b}[data-theme=telegram] .logo,[data-theme=telegram] .bar h2{color:#f6e7c4}[data-theme=nightmail]{--bg:#0c1424;--surface:radial-gradient(1px 1px at 20% 30%, #fff0c880, transparent), radial-gradient(1px 1px at 70% 12%, #fff0c866, transparent), radial-gradient(1.5px 1.5px at 85% 60%, #fff0c859, transparent), radial-gradient(1px 1px at 40% 85%, #fff0c84d, transparent), radial-gradient(ellipse at 50% 0%, #f3c75a14, transparent 60%);--ink:#ece4d0;--muted:#9aa6c0;--press:#ece4d014;--rule:#ece4d02e;--shadow:#00000080;--accent:#f3c75a;--accent-edge:#b48a2a;--accent-ink:#0c1424;--accent-text:#f3c75a;--btn:#1b2a47;--btn-ink:#ece4d0;--btn-edge:#34466c;--chev-a:#ff7a5c;--chev-b:#f3c75a;--chev-gap:#16233d;--border-pattern:repeating-linear-gradient(135deg, var(--chev-a) 0 13px, var(--chev-gap) 13px 20px, var(--chev-b) 20px 33px, var(--chev-gap) 33px 40px);--card:#16233d;--card-surface:radial-gradient(ellipse at 50% -20%, #f3c75a1f, transparent 65%);--card-ink:#f4ead2;--card-muted:#9aa6c0;--card-rule:#f4ead229;--decode:#f4ead2;--cipher:#ff9a80;--given:#8fd0b0;--tile-line:#f4ead266;--sel:#f3c75a38;--postmark:#f3c75a;--stamp-paper:#f4ead2;--st0:#d6553f;--st1:#2f6db0;--st2:#3d8f74;--st3:#a07a22;--chip:#1b2a47cc;--chip-edge:#ece4d029;--wheel:#16233d;--wheel-edge:#f3c75a40;--wheel-ink:#f4ead2;--wheel-used:#f4ead259;--wheel-dim:#0000000d;--album-page:#16233d;--album-ink:#f4ead2;--album-muted:#9aa6c0;--album-rule:#f4ead24d;--scrim:#0009}[data-theme=nightmail] .chip.t--sel,[data-theme=nightmail] .chip.t--sel small{color:#f4ead2}
