:root{--u: 1px;--paper: #fff7e6;--ink: #3b3b4f;--faint: #b4aec4;--gear: #8f8aa3;--primary: #6c74d9;--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px)}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--paper);color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;touch-action:manipulation}#app{position:fixed;inset:0;overflow:hidden}.screen{position:absolute;inset:0;overflow:hidden}.pic{display:block;flex:none;object-fit:contain;pointer-events:none}.pic.emoji{display:flex;align-items:center;justify-content:center;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.backdrop{position:absolute;inset:0;overflow:hidden}.backdrop-tiles{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-evenly;opacity:.16;filter:blur(2px);pointer-events:none}.backdrop-row{display:flex;justify-content:space-evenly;align-items:center}.content{position:absolute;inset:0;display:flex;flex-direction:column;padding:calc(var(--safe-t) + 12 * var(--u)) calc(var(--safe-r) + 24 * var(--u)) calc(var(--safe-b) + 12 * var(--u)) calc(var(--safe-l) + 24 * var(--u))}.centred{align-items:center;justify-content:center}.sleepy{display:flex;align-items:center;gap:calc(24 * var(--u))}.gate{position:absolute;z-index:5;top:var(--safe-t);left:var(--safe-l);display:flex;align-items:center;height:calc(72 * var(--u));min-width:calc(72 * var(--u));touch-action:none}.gate-gear{width:calc(72 * var(--u) * .72);height:calc(72 * var(--u) * .72);margin:calc(72 * var(--u) * .14);overflow:visible}.gate-hint{margin-left:calc(4 * var(--u));padding:calc(6 * var(--u)) calc(10 * var(--u));border-radius:calc(12 * var(--u));background:#fff7e6e6;color:#5e5a6b;font-size:calc(14 * var(--u));white-space:nowrap}.title{margin:0;height:calc(56 * var(--u));display:flex;align-items:center;justify-content:center;font-size:calc(30 * var(--u));font-weight:800}.themes{flex:1;min-height:0;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:1fr;gap:calc(16 * var(--u));padding-bottom:calc(4 * var(--u))}.theme-button{border:0;padding:0;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:calc(32 * var(--u));box-shadow:0 calc(6 * var(--u)) calc(14 * var(--u)) #3b3b4f38;cursor:pointer;transition:transform .12s ease-out}.theme-button:active{transform:scale(.97)}.chart{margin-top:calc(12 * var(--u));display:grid;grid-template-columns:repeat(13,minmax(0,calc(56 * var(--u))));justify-content:center;gap:calc(4 * var(--u))}.chart-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:calc(10 * var(--u));font-size:calc(20 * var(--u));font-weight:800}@media (orientation: portrait){.themes{grid-template-columns:repeat(2,1fr)}.chart{grid-template-columns:repeat(7,minmax(0,calc(56 * var(--u))))}.content{padding-top:calc(var(--safe-t) + 8 * var(--u))}}.strip{--tile: min(calc(64 * var(--u)), 12.5vw);display:flex;align-items:center;justify-content:center;flex:none;cursor:pointer}.strip-gap{width:calc(16 * var(--u));flex:none}.tile{flex:none;width:var(--tile);height:var(--tile);margin:0 calc(4 * var(--u));display:flex;align-items:center;justify-content:center;border-radius:calc(var(--tile) * .25);font-size:calc(var(--tile) * .56);font-weight:800}.card{position:relative;flex:1;min-height:0;margin-top:calc(8 * var(--u));border-radius:calc(36 * var(--u));background:#fff7e6c7;touch-action:none}.trace-canvas{position:absolute;left:0;top:0;pointer-events:none}.buddy{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.buddy>.pic{width:100%;height:100%}@media (orientation: portrait){.trace-content{padding-top:calc(var(--safe-t) + 64 * var(--u))}}.celebration{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;cursor:pointer}.celebration-box{display:flex;flex-direction:column;align-items:center}.celebration-word{font-size:calc(64 * var(--u));font-weight:800}.stars{display:flex;gap:calc(8 * var(--u))}.pulse{animation:pulse .6s ease-in-out infinite alternate}@keyframes pulse{0%{transform:scale(.9)}to{transform:scale(1.15)}}@media (prefers-reduced-motion: reduce){.pulse{animation:none}}.parent{background:var(--paper);overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.parent-page{max-width:760px;margin:0 auto;padding:calc(var(--safe-t) + 24 * var(--u)) calc(var(--safe-r) + 24 * var(--u)) calc(var(--safe-b) + 48 * var(--u)) calc(var(--safe-l) + 24 * var(--u));display:flex;flex-direction:column;gap:calc(12 * var(--u));-webkit-user-select:text;user-select:text}.parent-page *{-webkit-user-select:text;user-select:text}.parent h2{margin:0;font-size:calc(26 * var(--u))}.parent h3,.heading{margin:0;font-size:calc(20 * var(--u));font-weight:800}.parent p{margin:0;font-size:calc(16 * var(--u));line-height:1.4}.parent p.small{font-size:calc(14 * var(--u))}.row{display:flex;align-items:center;gap:calc(12 * var(--u))}.row.wrap{flex-wrap:wrap;gap:calc(8 * var(--u))}.row.end{justify-content:flex-end}.btn{font:inherit;font-size:calc(15 * var(--u));font-weight:700;min-height:calc(44 * var(--u));padding:calc(8 * var(--u)) calc(18 * var(--u));border-radius:calc(24 * var(--u));border:2px solid var(--primary);background:var(--primary);color:var(--paper);cursor:pointer}.btn.outline{background:transparent;color:var(--primary);border-color:var(--faint)}.btn.small-btn{font-size:calc(13 * var(--u));padding:calc(8 * var(--u)) calc(14 * var(--u))}.switch{position:relative;width:calc(52 * var(--u));height:calc(32 * var(--u));flex:none}.switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}.slider{position:absolute;inset:0;border-radius:999px;background:var(--faint);transition:background .15s}.slider:after{content:"";position:absolute;top:calc(4 * var(--u));left:calc(4 * var(--u));width:calc(24 * var(--u));height:calc(24 * var(--u));border-radius:50%;background:var(--paper);transition:transform .15s}.switch input:checked+.slider{background:var(--primary)}.switch input:checked+.slider:after{transform:translate(calc(20 * var(--u)))}.dialog-shade{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#3b3b4f73;padding:calc(24 * var(--u))}.dialog{width:min(420px,100%);display:flex;flex-direction:column;gap:calc(14 * var(--u));padding:calc(24 * var(--u));border-radius:calc(24 * var(--u));background:var(--paper);box-shadow:0 calc(10 * var(--u)) calc(30 * var(--u)) #00000040}.dialog h3{margin:0;font-size:calc(22 * var(--u))}.dialog p{margin:0;font-size:calc(16 * var(--u))}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
