:root{--linen:#f6e7d2;--card:#fff8ee;--card-edge:#e8d4ba;--card-lip:#d8bf9f;--ink:#3a2418;--ink-soft:#7a5a48;--t0:#f4a259;--t1:#ee7559;--t2:#d2486b;--t3:#6b3a26;--font:ui-rounded, "Nunito", "Segoe UI Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--tile-font:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--bw:336px;--tw:78px;--th:62px;--gap:7px}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;margin:0;overflow:hidden}body{background-color:var(--linen);background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27160%27 height=%27160%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%272%27 stitchTiles=%27stitch%27/%3E%3CfeColorMatrix values=%270 0 0 0 0.35 0 0 0 0 0.22 0 0 0 0 0.12 0 0 0 0.06 0%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E"), radial-gradient(ellipse at 30% 15%, #fcf3e6 0%, var(--linen) 55%, #f1dfc5 100%)}button{font:inherit;color:inherit;touch-action:manipulation}[hidden]{display:none!important}html .pk-btn{color:var(--card);background:#3a2418c7}html .pk-btn:hover{background:#3a2418eb}#loading{z-index:30;background:var(--linen);place-items:center;display:grid;position:fixed;inset:0}.spin{border:4px solid var(--card-edge);border-top-color:var(--t1);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#app{position:fixed;inset:0}.screen{padding:max(8px, env(safe-area-inset-top)) 8px max(10px, env(safe-area-inset-bottom));flex-direction:column;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.screen.scroll{-webkit-overflow-scrolling:touch;overflow-y:auto}.btn{border:2px solid var(--ink);background:var(--card);cursor:pointer;min-width:48px;min-height:48px;box-shadow:0 3px 0 var(--ink);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:800;transition:transform 80ms,box-shadow 80ms,opacity .15s;display:inline-flex}.btn.primary{background:var(--ink);color:var(--card);box-shadow:0 3px #1f130c}.btn.warm{background:var(--t1);color:#fff;border-color:#b9533c;box-shadow:0 3px #b9533c}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.btn:disabled{opacity:.4;cursor:default}.btn:focus-visible,.icon-btn:focus-visible,.day:focus-visible{outline:3px solid var(--t2);outline-offset:2px}.btn svg,.icon-btn svg{fill:currentColor;flex:none;width:20px;height:20px}.btn.glow{animation:1s ease-in-out infinite alternate glow}@keyframes glow{0%{box-shadow:0 3px #1f130c,0 0 #ee7559b3}to{box-shadow:0 3px #1f130c,0 0 0 8px #ee755900}}.icon-btn{width:44px;height:44px;color:var(--card);cursor:pointer;background:#3a2418c7;border:0;border-radius:12px;flex:none;place-items:center;display:grid}.bar{align-items:center;gap:10px;width:100%;max-width:560px;min-height:48px;padding-right:100px;display:flex}.bar .title{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.bar .title b{white-space:nowrap;text-overflow:ellipsis;font-size:18px;font-weight:900;overflow:hidden}.bar .title span{color:var(--ink-soft);font-size:13px;font-weight:700}.ribbon-tag{color:#fff;letter-spacing:.02em;background:var(--art-ribbon,none) center / 100% 100% no-repeat;white-space:nowrap;align-items:center;height:30px;margin:6px 0 10px;padding:0 30px;font-size:13px;font-weight:800;display:inline-flex}html:not(.art) .ribbon-tag{background:var(--t2);clip-path:polygon(0 0,100% 0,94% 50%,100% 100%,0 100%,6% 50%)}.ribbon-tag .mini{width:14px;height:14px;margin-right:6px;display:inline-block}.subbar{width:var(--bw);justify-content:space-between;align-items:center;gap:8px;max-width:100%;min-height:34px;margin-top:6px;display:flex}.subbar .ribbon-tag{text-overflow:ellipsis;min-width:0;margin:0;overflow:hidden}.chances{color:var(--ink-soft);flex:none;align-items:center;gap:6px;margin-left:auto;font-size:12px;font-weight:800;display:flex}.seals{gap:3px;display:flex}.pip{background:var(--t3) var(--art-seal,none) center / contain no-repeat;border-radius:50%;width:22px;height:22px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .25s,filter .25s}html.art .pip{background-color:#0000}.pip.used{opacity:.28;filter:grayscale();transform:scale(.7)rotate(-20deg)}.board{width:var(--bw);height:calc(var(--th) * 4 + var(--gap) * 3);flex:none;position:relative}.tile{width:var(--tw);height:var(--th);border:1.5px solid var(--card-edge);color:var(--ink);font-family:var(--tile-font);text-align:center;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none;cursor:pointer;rotate:var(--tilt,0deg);box-shadow:1px 3px 0 var(--card-lip), 0 6px 10px #3a241814;background:linear-gradient(160deg,#fffaf2 0%,#fbefdd 100%);border-radius:16px 16px 16px 6px;place-items:center;padding:0 4px;font-size:16px;font-weight:700;line-height:1.05;transition:translate .34s cubic-bezier(.3,.9,.3,1.06),transform .2s cubic-bezier(.34,1.56,.64,1),rotate .2s,background .14s,border-color .14s,box-shadow .2s,opacity .2s;display:grid;position:absolute;top:0;left:0}.tile:before{content:"";background:linear-gradient(225deg, var(--linen) 50%, #ead6bb 50%);pointer-events:none;border-radius:0 16px 0 4px;width:14px;height:14px;position:absolute;top:-1.5px;right:-1.5px}.tile.sel{border:2.5px solid var(--t2);background:linear-gradient(160deg,#ffe7cf 0%,#ffd8b8 100%);transform:translateY(-5px)scale(1.05)rotate(0);box-shadow:1px 6px #c9a786,0 12px 18px #3a241833}.tile:active{transform:scale(.95)}.tile.sel:active{transform:translateY(-3px)scale(1.01)}.tile.kb{outline:3px solid var(--t3);outline-offset:2px}.tile.locking{z-index:2}.tile.hint:after{content:"";border:3px solid var(--t1);pointer-events:none;border-radius:18px;animation:.9s ease-in-out infinite hint;position:absolute;inset:-6px}@keyframes hint{0%,to{opacity:.25;transform:scale(.96)}50%{opacity:1;transform:scale(1.03)}}.band{width:100%;height:var(--th);color:#fff;border-radius:18px 18px 18px 8px;align-items:center;gap:10px;padding:0 14px;display:flex;position:absolute;left:0;overflow:hidden;box-shadow:1px 3px #3a241859,0 8px 14px #3a24181f}.band.t0{background:var(--t0);color:var(--ink)}.band.t1{background:var(--t1)}.band.t2{background:var(--t2)}.band.t3{background:var(--t3)}.band.revealed{background-image:repeating-linear-gradient(-45deg,#ffffff29 0 8px,#0000 8px 16px)}.band .shape{flex:none;width:24px;height:24px}.band .text{flex-direction:column;flex:1;align-items:flex-start;gap:5px;min-width:0;display:flex}.band .label{font-family:var(--tile-font);white-space:nowrap;font-size:15px;font-weight:700;line-height:1.1}.band .tags{flex-wrap:nowrap;gap:4px;max-width:100%;display:flex}.band .tag{color:var(--ink);font-family:var(--tile-font);white-space:nowrap;background:#fff8eeed;border-radius:5px;padding:2px 6px;font-weight:700;box-shadow:0 1px #3a241840}.band .rib{background:var(--card);clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);opacity:.9;width:14px;height:22px;position:absolute;top:0;right:12px}.hint-line{min-height:20px;color:var(--ink-soft);text-align:center;margin-top:12px;font-size:14px;font-weight:800}.controls{width:var(--bw);align-items:center;gap:10px;margin-top:8px;display:flex}.controls .btn.round{border-radius:50%;flex:none;width:50px;min-width:50px;height:50px;padding:0}.controls .btn.round svg{width:22px;height:22px}.controls .lock{letter-spacing:.02em;border-radius:18px;flex:1;min-height:54px;font-size:18px}.play-top,.play-foot{flex:1}.ghost{z-index:5;pointer-events:none;filter:drop-shadow(0 3px 2px #3a24184d);width:44px;height:44px;transition:left .35s,top .35s;animation:1s ease-in-out infinite tapme;position:absolute}@keyframes tapme{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-4px,-8px)scale(1.06)}}#toasts{z-index:25;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:14%;left:0;right:0}.toast{background:var(--ink);color:var(--card);text-align:center;border-radius:999px;max-width:calc(100vw - 32px);padding:10px 18px;font-size:16px;font-weight:800;box-shadow:0 8px 20px #3a24184d}.toast.warm{background:var(--t1);color:#fff}.menu-inner{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:440px;padding-top:6px;display:flex}.key-art{background:var(--art-key,none) center / contain no-repeat;width:150px;height:150px;animation:.6s cubic-bezier(.34,1.56,.64,1) float-in}html:not(.art) .key-art{background:linear-gradient(var(--card), var(--card)) 30% 30% / 60px 84px no-repeat, linear-gradient(var(--t1), var(--t1)) 50% 40% / 60px 84px no-repeat}@keyframes float-in{0%{opacity:0;transform:translateY(14px)scale(.9)}}.menu-inner h1{letter-spacing:.01em;margin:-6px 0 0;font-size:40px;font-weight:900}.menu-inner .sub{color:var(--ink-soft);text-align:center;margin:-8px 0 4px;font-weight:700}.card{border:2px solid var(--card-edge);width:100%;box-shadow:0 4px 0 var(--card-lip);background:#fff8eeeb;border-radius:18px;padding:12px 14px}.week-card{flex-direction:column;align-items:center;gap:8px;display:flex}.week-card .ribbon-tag{margin:0}.slots{justify-content:center;gap:6px;display:flex}.slot{width:38px;color:var(--ink-soft);flex-direction:column;align-items:center;gap:3px;font-size:12px;font-weight:800;display:flex}.slot i{border:2px dashed var(--card-lip);border-radius:50%;width:34px;height:34px;display:block}.slot.today i{border:3px solid var(--t1)}.slot.done i{background:var(--t3) var(--art-seal,none) center / contain no-repeat;border:0}html.art .slot.done i{background-color:#0000}.slot.stamp i{animation:.45s cubic-bezier(.2,1.6,.4,1) stamp}@keyframes stamp{0%{opacity:0;transform:scale(2.2)rotate(-25deg)}}.menu-actions{flex-direction:column;gap:10px;width:100%;display:flex}.menu-actions .row{gap:10px;display:flex}.menu-actions .row .btn{flex:1}.btn.big{flex-direction:column;gap:0;min-height:58px;font-size:19px;line-height:1.1}.btn.big small{opacity:.8;font-size:12.5px;font-weight:700}.stats{text-align:center;grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.stats b{font-size:22px;font-weight:900;display:block}.stats span{color:var(--ink-soft);font-size:11.5px;font-weight:700}.link{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;min-height:44px;padding:0 12px;font-weight:800;text-decoration:underline}.archive-list{flex-direction:column;gap:12px;width:100%;max-width:480px;padding:8px 0 24px;display:flex}.week h3{color:var(--ink-soft);margin:0 0 8px;font-size:14px;font-weight:800}.week .days{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.day{border:2px solid var(--card-edge);background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:0;font-size:12px;font-weight:800;display:flex}.day small{color:var(--ink-soft);font-size:10px}.day svg{width:14px;height:14px}.day.won{border-color:var(--t1)}.day.lost{opacity:.75}.day.today{border-color:var(--ink)}.day.empty{visibility:hidden}#results{z-index:9;padding:max(58px, env(safe-area-inset-top)) 16px 12px;background:#3a241859;place-items:center;display:grid;position:fixed;inset:0}.results-card{background:var(--card);border:2px solid var(--card-edge);width:100%;max-width:380px;max-height:calc(100dvh - 72px);box-shadow:0 6px 0 var(--card-lip), 0 20px 40px #3a24184d;border-radius:22px;flex-direction:column;align-items:center;gap:10px;padding:14px 18px 18px;animation:.45s cubic-bezier(.34,1.4,.64,1) card-in;display:flex;overflow-y:auto}@keyframes card-in{0%{opacity:0;transform:translateY(40px)scale(.92)}}.rosette{background:var(--art-rosette,none) center / contain no-repeat;width:92px;height:118px;color:var(--ink);place-items:center;margin-top:-4px;padding-bottom:30px;font-size:22px;font-weight:900;animation:.6s cubic-bezier(.2,1.5,.4,1) .15s both drop;display:grid}html:not(.art) .rosette{background:radial-gradient(circle at 50% 38%, var(--card) 0 26px, var(--t1) 27px 36px, var(--t0) 37px 46px, transparent 47px)}.rosette.sad{filter:saturate(.4)}@keyframes drop{0%{opacity:0;transform:translateY(-60px)rotate(-12deg)}}.results-card h2{margin:0;font-size:26px;font-weight:900}.results-card .when{color:var(--ink-soft);margin-top:-8px;font-size:14px;font-weight:700}.path{flex-direction:column;gap:5px;display:flex}.path .prow{gap:5px;display:flex}.path svg{width:26px;height:26px}.path .prow.pop{animation:.3s cubic-bezier(.34,1.56,.64,1) both row-in}@keyframes row-in{0%{opacity:0;transform:scale(.4)}}.legend{color:var(--ink-soft);flex-wrap:wrap;justify-content:center;gap:10px;font-size:11.5px;font-weight:700;display:flex}.legend span{align-items:center;gap:3px;display:inline-flex}.legend svg{width:12px;height:12px}.results-card .stats{width:100%}.note{color:var(--ink-soft);text-align:center;font-size:14px;font-weight:700}.results-actions{flex-direction:column;gap:8px;width:100%;display:flex}.results-actions .row{gap:8px;display:flex}.results-actions .row .btn{flex:1}#fx{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.bit{border-radius:2px;width:9px;height:13px;position:absolute}@media (prefers-reduced-motion:reduce){.tile,.pip{transition:none}.ghost,.tile.hint:after,.btn.glow{animation:none}}@media (height>=760px){.ribbon-tag{margin:12px 0 16px}.controls,.status{margin-top:18px}}@media (height<=700px){.key-art{width:104px;height:104px}.menu-inner h1{font-size:32px}.menu-inner{gap:9px}}.achv{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.achv span{background:var(--t1);color:#fff;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:800;animation:.35s cubic-bezier(.34,1.56,.64,1) .9s both row-in}
