:root{--ink: #6b2f1a;--ink-soft: #8a5a3a;--paper: #f6f0e3;--paper-edge: #e3d6bd;--ribbon: #e8584e;--ribbon-dark: #b93c36;--gold: #f5cf5f;--gold-dark: #d9a936;--green: #6fcf6a;--green-dark: #48a847;--teal: #5fa3a0}*{box-sizing:border-box}html{font-size:clamp(11px,calc(.45vw + .45vh + 4.5px),17px)}html,body{margin:0;height:100%;overflow:hidden;background:#9aa3e8}body{font-family:Fredoka,"Baloo 2",system-ui,sans-serif;color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none}#scene{position:fixed;inset:0;width:100%;height:100%;display:block}.hidden{display:none!important}button{font:inherit;border:0;background:none;cursor:pointer;padding:0;color:inherit}button:active{transform:translateY(2px) scale(.97)}button:disabled{filter:grayscale(.7);opacity:.6;cursor:default}.ico{display:inline-block;background:center / contain no-repeat;flex:none}#paper{position:fixed;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.5;z-index:5;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .55  0 0 0 0 .45  0 0 0 0 .35  0 0 0 .16 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}#hud{position:fixed;inset:0;pointer-events:none;z-index:10;padding:max(.7rem,env(safe-area-inset-top)) max(.8rem,env(safe-area-inset-right)) max(.7rem,env(safe-area-inset-bottom)) max(.8rem,env(safe-area-inset-left))}#hud button,#hud .pill,#clock,#rankBox{pointer-events:auto}.card-paper{background:var(--paper);border:3px solid var(--ink);border-radius:1.1rem 1.3rem 1.2rem 1rem;box-shadow:inset 0 -4px 0 var(--paper-edge)}.pills{position:absolute;left:.8rem;top:.7rem;display:flex;flex-direction:column;gap:.45rem}.pill{position:relative;display:flex;align-items:center;gap:.4rem;min-width:7.6rem;height:2.6rem;padding:0 .9rem 0 .5rem;background:var(--paper);border:3px solid var(--ink);border-radius:1.1rem 1.25rem 1.15rem 1rem;box-shadow:inset 0 -4px 0 var(--paper-edge);font-weight:700;font-size:1.3rem}.pill:after{content:"";position:absolute;right:.35rem;bottom:.35rem;width:.55rem;height:.5rem;background:linear-gradient(115deg,transparent 38%,var(--ink-soft) 40%,var(--ink-soft) 52%,transparent 54%) 0 0 / 50% 100% repeat-x}.pill .ico{width:1.9rem;height:1.9rem}.bump{animation:bump .35s cubic-bezier(.2,1.8,.5,1)}@keyframes bump{40%{transform:scale(1.15) rotate(-2deg)}}#clock{position:absolute;left:50%;top:.7rem;transform:translate(-50%);padding:.35rem .8rem .5rem;text-align:center}#date{font-weight:700;font-size:1.15rem;white-space:nowrap}.bar{height:.7rem;border:2.5px solid var(--ink);border-radius:.5rem;background:#fff;overflow:hidden}.bar i{display:block;height:100%;width:0;background:var(--green)}#clock .bar{margin:.25rem 0 .35rem}#speeds{display:flex;gap:.3rem;justify-content:center}#speeds button{min-width:2.7rem;height:1.9rem;border:2.5px solid var(--ink);border-radius:.6rem;background:#fff;font-size:.8rem;font-weight:700;box-shadow:inset 0 -3px 0 var(--paper-edge)}#speeds button.on{background:var(--gold);box-shadow:inset 0 -3px 0 var(--gold-dark)}#rankBox{position:absolute;right:5.2rem;top:.7rem;width:15rem;padding:1.1rem .7rem .45rem}.ribbon{position:absolute;left:-1.2rem;top:-1.5rem;padding:.3rem 2.6rem .35rem 1.2rem;z-index:2;background:var(--ribbon);color:#fff;font-weight:700;font-size:1.45rem;white-space:nowrap;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;clip-path:polygon(0 0,100% 0,calc(100% - 1.3rem) 50%,100% 100%,0 100%);filter:drop-shadow(0 3px 0 var(--ribbon-dark))}.ribbon.small{font-size:1.1rem;top:-1.1rem;left:-.8rem;padding:.15rem 2rem .2rem .9rem}.repRow{display:flex;align-items:center;gap:.35rem;font-weight:700}.repRow .ico{width:1.6rem;height:1.6rem}.repRow .bar{flex:1}.bar.rep i{background:linear-gradient(90deg,#f0a24a,var(--gold));transition:width .3s}.stats{display:flex;justify-content:space-between;margin-top:.25rem;font-weight:700;font-size:1rem}.stats>span{display:flex;align-items:center;gap:.2rem}.stats .ico{width:1.4rem;height:1.4rem}.pause{position:absolute;right:.8rem;top:.7rem;width:3.4rem;height:3.4rem;border-radius:.9rem;background:var(--gold);border:3px solid var(--ink);box-shadow:inset 0 -5px 0 var(--gold-dark);display:flex;gap:.4rem;align-items:center;justify-content:center}.pause i{width:.5rem;height:1.4rem;border-radius:.3rem;background:#fff;border:2.5px solid var(--ink)}.rot{position:absolute;right:.9rem;top:7.4rem;display:flex;flex-direction:column;gap:.45rem}.rot button{width:3rem;height:3rem;border-radius:50%;background:var(--paper);border:3px solid var(--ink);font-size:1.5rem;font-weight:700;line-height:1;box-shadow:inset 0 -4px 0 var(--paper-edge)}#work{position:absolute;left:.8rem;top:10.8rem;display:flex;flex-direction:column;gap:.4rem}.work{display:flex;align-items:center;gap:.4rem;background:var(--paper);border:2.5px solid var(--ink);border-radius:.8rem;padding:.2rem .6rem .2rem .35rem;font-weight:600;font-size:.9rem;max-width:16rem}.work .ico{width:1.5rem;height:1.5rem}.work .bar{width:4rem;height:.6rem}.work span:not(.ico){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#goal{position:absolute;left:50%;transform:translate(-50%);bottom:6.9rem;max-width:calc(100% - 2rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--paper);border:3px solid var(--ink);border-radius:1rem;padding:.3rem 1rem;font-weight:600;font-size:1.05rem;box-shadow:inset 0 -4px 0 var(--paper-edge)}#goal b{color:#fff;background:var(--ribbon);border-radius:.5rem;padding:0 .4rem;margin-right:.3rem;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill}#toolbar{position:absolute;left:50%;transform:translate(-50%);bottom:max(.7rem,env(safe-area-inset-bottom));display:flex;gap:.55rem}#toolbar button{position:relative;width:5rem;height:5rem;border-radius:50%;background:radial-gradient(circle at 50% 45%,#f7e3c1 58%,#eea85a 60%);border:3px solid var(--ink);display:grid;place-items:center}#toolbar button .ico{width:3rem;height:3rem;margin-top:-.5rem}#toolbar button em{position:absolute;bottom:-.55rem;font-style:normal;font-weight:700;font-size:1rem;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;white-space:nowrap}#toolbar button.alert:after{content:"!";position:absolute;top:-.3rem;right:-.2rem;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--ribbon);color:#fff;font-weight:700;border:2px solid var(--ink);display:grid;place-items:center;font-size:.9rem}#placing{position:absolute;left:50%;transform:translate(-50%);bottom:10rem;display:flex;align-items:center;gap:.6rem;padding:.4rem .5rem .4rem 1rem;font-weight:700;font-size:1.15rem;white-space:nowrap}.chunky{display:inline-block;padding:.5rem 1.6rem;border-radius:1rem;background:var(--green);color:#fff;font-weight:700;font-size:1.25rem;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;border:3px solid var(--ink);box-shadow:inset 0 -5px 0 var(--green-dark)}.chunky.small{padding:.25rem .9rem;font-size:1.05rem;box-shadow:inset 0 -4px 0 var(--green-dark)}.chunky.gold{background:var(--gold);box-shadow:inset 0 -5px 0 var(--gold-dark)}.chunky.red{background:var(--ribbon);box-shadow:inset 0 -5px 0 var(--ribbon-dark)}.chunky.blue{background:#7fa6e8;box-shadow:inset 0 -5px #5a80c4}.screen{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#28325a59}.frame{position:relative;width:min(60rem,94vw);padding:2.4rem 1.6rem 1.4rem;background:var(--paper);border:3.5px solid var(--ink);border-radius:1.6rem;box-shadow:inset 0 -7px 0 var(--paper-edge);animation:pop2 .3s cubic-bezier(.2,1.6,.5,1)}.frame.small{width:min(30rem,92vw);text-align:center}@keyframes pop2{0%{transform:scale(.85);opacity:0}}.hint{font-size:1.15rem;line-height:1.45;font-weight:500}.map-buttons{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:.8rem}.map-buttons.col{flex-direction:column;align-items:center}.map-buttons.col .chunky{min-width:12rem}.x{position:absolute;right:-.8rem;top:-.9rem;width:2.8rem;height:2.8rem;border-radius:50%;background:var(--ribbon);color:#fff;font-weight:700;font-size:1.2rem;border:3px solid var(--ink);box-shadow:inset 0 -4px 0 var(--ribbon-dark);z-index:3}#title{background:#28325a2e}.titlecard{padding-top:1.6rem}.logo{font-weight:700;font-size:3.4rem;line-height:1;color:var(--gold);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;letter-spacing:.02em}.logo span:last-child{color:#8fd1a0}.logo small{font-size:1.8rem;color:#fff}.sub{font-weight:600;font-size:1.15rem;margin:.6rem 0 .2rem}.quote{font-size:1rem;font-style:italic;color:var(--ink-soft);margin:.4rem 0}.quote small{font-style:normal;display:block;font-size:.8rem}#sheet{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;padding:0 .6rem max(.6rem,env(safe-area-inset-bottom))}.frame.sheet{pointer-events:auto;width:min(64rem,100%);max-height:70vh;display:flex;flex-direction:column;padding:1.9rem 1rem .8rem}#tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}#tabs button{padding:.2rem .8rem;border-radius:.8rem;background:#fff;border:2.5px solid var(--ink);font-weight:700;font-size:1rem;box-shadow:inset 0 -3px 0 var(--paper-edge)}#tabs button.on{background:var(--gold);box-shadow:inset 0 -3px 0 var(--gold-dark)}#tabs:empty{display:none}#sheetBody{overflow-y:auto;overflow-x:hidden;padding:.2rem .2rem .4rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:.6rem}.item{position:relative;background:#fffaf0;border:2.5px solid var(--ink);border-radius:.9rem 1rem .95rem .85rem;padding:.5rem .6rem;box-shadow:inset 0 -4px 0 var(--paper-edge);text-align:left}button.item{width:100%}.item.off{opacity:.55}.item .nm{font-weight:700;font-size:1.1rem;line-height:1.1}.item .meta{font-size:.85rem;font-weight:500;color:var(--ink-soft);line-height:1.25}.item .cost{font-weight:700;font-size:1rem;color:#2e7a2e}.item .cost.no{color:var(--ribbon-dark)}.item .emo{font-size:1.8rem;float:right;margin-left:.3rem;line-height:1}.item .row{display:flex;align-items:center;gap:.5rem}.item .btns{display:flex;gap:.35rem;margin-top:.35rem;flex-wrap:wrap}.tag{display:inline-block;font-size:.75rem;font-weight:700;padding:0 .4rem;border-radius:.5rem;border:2px solid var(--ink);background:#fff;color:var(--ink)}.tag.gold{background:var(--gold)}.tag.green{background:#bfe8b8}.tag.red{background:#f4b0a8}.tag.blue{background:#c4d6f8}.face{width:3.4rem;height:4rem;border-radius:.7rem;background:#e7f0f7 center 20% / 125% no-repeat;border:2px solid var(--ink-soft);flex:none}.kbar{display:grid;grid-template-columns:4.6rem 1fr 1.8rem;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600}.kbar .bar{height:.55rem;border-width:2px}.sheet-note{font-weight:600;font-size:1rem;margin:0 0 .5rem}.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.3rem 0 .6rem}.chip{padding:.2rem .7rem;border-radius:1rem;border:2.5px solid var(--ink);font-weight:700;font-size:.95rem;background:#fff}.chip.on{outline:3px solid var(--gold);outline-offset:1px;transform:translateY(-2px)}.chip.lock{opacity:.45}.matrix{display:grid;gap:2px;font-size:.72rem;font-weight:700;margin-top:.4rem}.matrix div{display:grid;place-items:center;min-height:1.5rem;border-radius:.3rem;background:#fff}.matrix .h{background:none;writing-mode:horizontal-tb;font-size:.68rem}.matrix .found{background:#9fd19a}.matrix .close{background:#f5cf5f}.matrix .none{background:#e3d6bd}.matrix .self{background:none}.split{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}@media(max-width:700px){.split{grid-template-columns:1fr}}.worldmap{position:relative;width:100%;aspect-ratio:2.4 / 1;border:3px solid var(--ink-soft);border-radius:1rem;overflow:hidden}.worldmap canvas{width:100%;height:100%;display:block}.city{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}.city i{width:.9rem;height:.9rem;border-radius:50%;background:#fff;border:2.5px solid var(--ink)}.city.home i{width:1.3rem;height:1.3rem;background:var(--gold)}.city.inst i{background:var(--ribbon)}.city b{font-size:.75rem;white-space:nowrap;color:var(--ink);background:#fff8eacc;padding:0 .3rem;border-radius:.4rem;margin-top:.1rem}.city.locked{opacity:.35}.city em{font-style:normal;font-size:.7rem;font-weight:700;color:#fff;background:var(--ribbon);border-radius:.4rem;padding:0 .25rem;border:1.5px solid var(--ink)}#cardArt{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap}#cardArt .face{width:4.5rem;height:5.4rem}#cardArt .big{font-size:3rem}#cardList{text-align:left;max-height:40vh;overflow-y:auto}#cardList .item{margin-bottom:.35rem}#labels,#floats{position:fixed;inset:0;pointer-events:none;z-index:8;overflow:hidden}#labels span{position:absolute;transform:translate(-50%,-100%);white-space:nowrap;padding:.05rem .55rem;border-radius:.7rem;background:var(--paper);border:2.5px solid var(--ink);font-weight:700;font-size:.85rem}#labels span i{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.3rem;border:2px solid var(--ink);vertical-align:-.05rem}#labels span.warn{background:#fde0d8}.float{position:absolute;transform:translate(-50%,-50%);font-weight:700;font-size:1.2rem;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;animation:floatUp 1.4s ease-out forwards;white-space:nowrap}.float.ilm{color:#b8ccfa}.float.gold{color:var(--gold)}@keyframes floatUp{0%{opacity:0;transform:translate(-50%,-30%) scale(.7)}15%{opacity:1;transform:translate(-50%,-60%) scale(1.1)}to{opacity:0;transform:translate(-50%,-260%) scale(1)}}@media(max-width:700px){html{font-size:11px}.pills{flex-direction:row;gap:.3rem;top:.6rem}.pill{min-width:0;height:2.3rem;padding:0 .6rem 0 .3rem;font-size:1.15rem}.pill .ico{width:1.6rem;height:1.6rem}#clock{top:3.5rem;left:.8rem;transform:none}#rankBox{top:4.9rem;right:.8rem;width:13.5rem}.pause{top:.6rem;width:2.9rem;height:2.9rem}.rot{top:12.6rem}#work{top:10.3rem}#toolbar{gap:.3rem}#toolbar button{width:4.6rem;height:4.6rem}#toolbar button .ico{width:2.6rem;height:2.6rem}#toolbar button em{font-size:.95rem}#goal{bottom:6.3rem;font-size:1rem}.frame.sheet{max-height:78vh}}.item .chip,.sheet-note .chip,#cardText .chip,.meta .chip{display:inline-block;padding:0 .45rem;font-size:.8rem;border-width:2px;line-height:1.35;vertical-align:.05rem}.item .meta{line-height:1.55}.item .nm{margin-bottom:.1rem}.item.row{display:flex;align-items:center;gap:.6rem}.bubble{position:absolute;transform:translate(-50%,-100%);margin-top:-.5rem;max-width:11rem;padding:.2rem .6rem;border-radius:.9rem 1rem .95rem .85rem;background:#fffaf0;border:2.5px solid var(--ink);font-weight:600;font-size:.85rem;line-height:1.15;text-align:center;white-space:nowrap;box-shadow:inset 0 -3px 0 var(--paper-edge);animation:bubbleIn .25s cubic-bezier(.2,1.8,.5,1);transition:opacity .35s}.bubble:after{content:"";position:absolute;left:50%;bottom:-.55rem;width:.7rem;height:.7rem;background:#fffaf0;border:2.5px solid var(--ink);border-top:0;border-left:0;transform:translate(-50%) rotate(45deg);margin-bottom:.15rem}.bubble.out{opacity:0}@keyframes bubbleIn{0%{transform:translate(-50%,-80%) scale(.5);opacity:0}}.float.small{font-size:.95rem;-webkit-text-stroke:3.5px var(--ink);color:#c8f0c0}#labels .mark{position:absolute;transform:translate(-50%,-50%);width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;font-size:1.9rem;font-weight:700;line-height:1;border:3px solid var(--ink);box-shadow:inset 0 -3px 0 var(--paper-edge)}#labels .mark.full{background:#fff3c4;color:var(--ribbon-dark);border-color:var(--ribbon-dark);animation:bump .6s infinite alternate}#labels .mark.near{background:#fffaf0;color:var(--ink-soft);border-style:dashed}.reviews{margin-top:.3rem}.rv-head{font-weight:700;text-align:center;margin-bottom:.25rem}.review{display:grid;grid-template-columns:2.6rem 1fr 2.2rem;align-items:center;gap:.5rem;padding:.2rem .4rem;margin-bottom:.25rem;background:#fffaf0;border:2px solid var(--ink-soft);border-radius:.7rem}.review .face{width:2.6rem;height:3rem}.review .nm{font-weight:700;font-size:.95rem}.review .meta{font-size:.8rem;font-weight:500;color:var(--ink-soft)}.review .score{width:2.1rem;height:2.1rem;border-radius:50%;display:grid;place-items:center;font-size:1.15rem;background:var(--gold);border:2.5px solid var(--ink);box-shadow:inset 0 -3px 0 var(--gold-dark)}.rv-total{text-align:center;font-weight:700;font-size:1.2rem}.rv-total .tag{margin-left:.4rem;font-size:.8rem;vertical-align:.15rem}.review-thanks{text-align:center;font-style:italic}
