.desk{position:relative;min-height:100vh;min-height:100svh;overflow-x:clip;color:var(--ink);background:linear-gradient(#1c0d06b8,#1c0d06b8),url(/tex/wood.webp) #3b2012;background-size:auto,300px}.desk .plate{height:max(100vh,900px)}.desk .plate:after{height:26%}#f{position:relative;z-index:2}.steps{position:relative;z-index:3;width:min(100%,1600px);margin:0 auto;padding:0 41vw 0 1.6vw}.steps ol{list-style:none;padding:0;display:flex;justify-content:center;gap:clamp(14px,3.6vw,64px)}.bauble{--s: clamp(72px, 8.8vw, 132px);position:relative;display:grid;place-items:center;width:var(--s);aspect-ratio:220 / 262;padding-top:22%;margin-top:calc(var(--drop, 20px));text-decoration:none;text-align:center;background:url(/img/v3/bauble-cream.webp) center / contain no-repeat;color:#7a1626;filter:drop-shadow(0 8px 8px #2a10065a);transform-origin:50% -30px;animation:sway 5s ease-in-out infinite}.steps li:nth-child(2) .bauble{--drop: 46px;animation-delay:-1.3s}.steps li:nth-child(3) .bauble{--drop: 34px;animation-delay:-2.6s}.steps li:nth-child(4) .bauble{--drop: 52px;animation-delay:-3.7s}.bauble:before{content:"";position:absolute;left:50%;bottom:99%;width:2px;height:calc(var(--drop, 20px) + 14px);background:repeating-linear-gradient(180deg,#f1e4c8 0 3px,#b3162e 3px 6px)}.bauble b{display:grid;place-items:center;width:30%;aspect-ratio:1;border-radius:50%;border:1.6px solid currentColor;font:400 clamp(.85rem,1.15vw,1.15rem)/1 var(--serif);margin-bottom:2px}.bauble span{font:400 clamp(.62rem,.95vw,.94rem)/1.08 var(--serif);max-width:80%}.bauble.on{background-image:url(/img/v3/bauble-red.webp);color:#fff4e2;text-shadow:0 1px 0 #0006}.bauble.done b{background:#7a1626;color:#fff4e2;border-color:#7a1626}.bauble.on.done b{background:#fff4e2;color:#7a1626;border-color:#fff4e2}.bauble:hover{animation:swing 1.2s ease-in-out}.bauble:focus-visible{outline-offset:2px;border-radius:50%}@keyframes sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.bench{position:relative;width:min(100%,1600px);margin:0 auto;display:grid;grid-template-columns:minmax(0,58fr) minmax(290px,40fr);gap:1vw;padding:104px 1.4vw 40px 1.6vw;align-items:start}.mat{--t: var(--ink);--t-mut: var(--mut);--t-em: var(--accent);--t-link: var(--accent);position:relative;border-style:solid;border-width:70px;border-image:url(/img/v3/mat.webp) 128 fill / 70px stretch;padding:0 6px 6px;filter:drop-shadow(0 18px 18px #1f0b0480) drop-shadow(0 3px 3px #1f0b0466);min-height:560px}.mat .elf{position:absolute;z-index:3;bottom:100%;margin-bottom:52px;width:clamp(140px,13.6vw,220px);pointer-events:none;filter:drop-shadow(0 6px 6px #0005)}.mat .elf.e1{left:4%}.mat .elf.e2{right:14%;width:clamp(126px,12.2vw,196px)}.mat-head{text-align:center;margin-top:-40px}.mat h1{color:#8e1a2e;font-size:clamp(2.1rem,4.6vw,4.3rem);text-shadow:0 1px 0 #fff8,0 2px 0 #0000001a;line-height:1.02}.mat .lead{color:#3a2a24;margin:6px auto 0;font-size:clamp(.98rem,1.3vw,1.2rem);max-width:36rem;line-height:1.4}.dname{display:inline-flex;align-items:baseline;gap:10px;margin-top:10px;font:600 1.3rem var(--hand);color:#6a2a1e}.dname input{border:0;border-bottom:2px dashed #b3162e88;background:transparent;font:700 1.5rem var(--hand);color:#2a1a1e;width:min(17ch,52vw);padding:0 4px 2px;text-align:center}.dname input::placeholder{color:#8a6a5a;font-style:normal}.dname input:focus{outline:none;box-shadow:none;border-bottom-color:#8e1a2e;background:#fff8;border-radius:3px}.names{margin-top:2px}.line{--tw: clamp(98px, 8.6vw, 136px);position:relative;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:0 clamp(4px,.9vw,18px);padding:0;margin-inline:-36px}.line>svg.twine{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.line .ntag{translate:0 calc(var(--sag, 0px) + var(--jit, 0px))}.line .chips{display:contents;filter:none}.ntag{position:relative;width:var(--tw);flex:none;aspect-ratio:var(--ar);margin:calc(var(--tw) * var(--hw) * -.13) 0 -8px;transform-origin:50% 14%;transition:transform .3s var(--ease-pop)}.ntag>img{width:100%;height:auto;display:block;filter:drop-shadow(0 6px 5px #2a10064f);pointer-events:none;clip-path:inset(13% -30% -30% -30%)}.ntag .face{position:absolute;left:var(--fx);top:var(--fy);width:var(--fw);height:var(--fh);transform:translate(-50%,-50%) rotate(var(--r));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.ntag .nm{font:700 clamp(1.4rem,2vw,1.85rem)/1 var(--hand);color:#2f1d10;word-break:break-word;padding:0 6px}.ntag .nm.long{font-size:clamp(1.1rem,1.5vw,1.4rem)}.ntag .doodle{width:26px;height:18px;margin-top:6px;color:#1f4d3a}.ntag .doodle.r{color:#a3182c}.ntag [data-rm]{position:absolute;right:4%;top:30%;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#6a3a20;font:700 19px/1 var(--sans);cursor:pointer;opacity:.55}.ntag [data-rm]:hover,.ntag [data-rm]:focus-visible{opacity:1;color:#a3182c;background:#fff7}.ntag:not(.add):hover{animation:swing 1.2s ease-in-out}.chips .ntag:nth-child(4n+1){rotate:-3deg}.chips .ntag:nth-child(4n+2){rotate:2.5deg;--jit: 5px}.chips .ntag:nth-child(4n+3){rotate:-1deg;--jit: -2px}.chips .ntag:nth-child(4n){rotate:3.5deg;--jit: 3px}.ntag.add input{width:100%;border:0;border-bottom:1.6px dashed #6a3a2088;background:transparent;text-align:center;font:700 clamp(1.15rem,1.6vw,1.45rem)/1.1 var(--hand);color:#2f1d10;padding:2px}.ntag.add input::placeholder{color:#6a4a32;font-style:normal}.ntag.add input:focus{outline:none;box-shadow:none;border-bottom-color:#8e1a2e;background:#fff8;border-radius:3px}.ntag.add .pencil{position:absolute;right:-24%;bottom:-2%;width:34%;border:0;background:none;padding:0;cursor:pointer;transform:rotate(8deg);transform-origin:50% 100%;transition:transform .25s var(--ease-pop)}.ntag.add .pencil img{width:100%;height:auto;filter:drop-shadow(2px 5px 3px #0006)}.ntag.add .pencil:hover{transform:rotate(-4deg) translateY(-4px)}.ntag.drop{animation:tagdrop .7s var(--ease-pop)}@keyframes tagdrop{0%{transform:translateY(-40px) rotate(-14deg);opacity:0}60%{transform:translateY(4px) rotate(5deg);opacity:1}to{transform:none}}.tip{margin:2px auto 0;text-align:center;color:#4a3428;font-size:.9rem;max-width:44rem}.names:has(.chips:not(:empty)) .tip{display:none}.tip .hand{color:#8e1a2e;font-size:1.2rem}#sampleNames{color:#8e1a2e;padding:4px 2px;min-height:0}.lower{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.85fr);gap:10px 2%;margin-top:10px;align-items:start}.ribbon,.rule{position:relative;display:block;width:100%;max-width:600px;aspect-ratio:760 / 189;margin-bottom:-6px;color:#3a2410}.ribbon .rb,.rule .rb{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 6px 6px #2a10064d);pointer-events:none}.ribbon .badge,.rule .badge{position:absolute;left:23%;top:50%;width:15%;aspect-ratio:1;transform:translate(-50%,-50%);display:grid;place-items:center}.ribbon .badge svg,.rule .badge svg{width:78%;height:78%}.ribbon .label,.rule .label{position:absolute;inset:21% 13.5% 16% 35.5%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font:400 clamp(.86rem,1.22vw,1.2rem)/1.12 var(--serif);padding:0 7%;color:#3a2410}.rule .label em{font-style:normal;font-size:.82em;color:#4a2c1c}.rule .label .who{font:700 clamp(1.05rem,1.5vw,1.4rem)/1 var(--hand);color:#8e1a2e}.rule [data-rr]{position:absolute;right:13.5%;top:18%;width:30px;height:30px;border:0;background:none;color:#6a3a20;font:700 19px/1 var(--sans);cursor:pointer;opacity:.6;border-radius:50%}.rule [data-rr]:hover,.rule [data-rr]:focus-visible{opacity:1;color:#a3182c;background:#fff8}.rule.tied{animation:tie .7s var(--ease-pop)}@keyframes tie{0%{transform:scaleX(.2) rotate(-6deg);opacity:0}70%{transform:scaleX(1.03) rotate(1deg);opacity:1}to{transform:none}}.peekrule{cursor:pointer}.peekrule .flip{font:700 .62rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#7a5a3a;margin-top:4px}.peekrule:has(#sees:checked) .slash{display:none}.peekrule:hover .rb{filter:drop-shadow(0 6px 6px #2a10064d) brightness(1.06)}.peekrule .peek-on{display:none}.peekrule:has(#sees:checked) .peek-on{display:inline}.peekrule:has(#sees:checked) .peek-off{display:none}.peekrule:has(#sees:focus-visible){outline:3px solid #8e1a2e;outline-offset:2px;border-radius:10px}.peekrule input.sr{position:absolute;width:1px;height:1px;opacity:0}.hintline{color:#5a4438;margin:12px 0 0;max-width:34rem;font-size:.82rem}.tie-lbl{font-size:1.3rem;color:#8e1a2e;margin:8px 0 -2px}.ribbon.blank .rb{filter:drop-shadow(0 6px 6px #2a10064d) saturate(.85) brightness(1.04)}.tiebtn{position:absolute;left:23%;top:50%;width:15%;aspect-ratio:1;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;cursor:pointer;display:grid;place-items:center;transition:transform .25s var(--ease-pop)}.tiebtn svg{width:78%;height:78%}.tiebtn:hover{transform:translate(-50%,-50%) rotate(90deg) scale(1.05)}.tiebtn:focus-visible{outline:3px solid #8e1a2e;outline-offset:2px;box-shadow:none}.tiepick{flex-direction:row!important;gap:4px;padding:0 4%!important}.tiepick select{min-width:0;flex:1;border:0;border-bottom:1.6px dashed #8e1a2e88;background:transparent;font:700 clamp(1rem,1.5vw,1.4rem)/1.1 var(--hand);color:#8e1a2e;padding:2px;cursor:pointer;text-align:center;appearance:none;-webkit-appearance:none}.tiepick select:focus{outline:none;box-shadow:none;border-bottom-color:#3a2410;background:#fff8;border-radius:3px}.tiepick .arrow{color:#3a2410;font-weight:800}.tieboth{margin:6px 0 0 4px;font-size:.86rem;align-items:center;gap:8px}.tieboth input{transform:scale(.8)}.solve{margin-top:8px;font-size:.92rem;font-weight:700;min-height:1.4em}.solve.good{color:#14683f}.solve.bad{color:#7a1311;background:#fff0ee;border:1.5px dashed #c46a64;border-radius:6px;padding:10px 12px}.prev{margin-top:6px}.prev summary{cursor:pointer;font-weight:800;color:#8e1a2e;min-height:36px;display:flex;align-items:center;font-size:.92rem}.budgetcol{position:relative;padding-top:4px}.jarset{position:relative;display:flex;align-items:flex-end;justify-content:center;padding-top:6px}.btag{--tw: clamp(150px, 14vw, 210px);width:var(--tw);margin:calc(var(--tw) * -.5) -30px 0 0;z-index:2;rotate:-4deg}.btag>img{clip-path:inset(30% -20% 0 -20%)}.btag .face{gap:0}.btag .gb{font:800 .66rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#1f4d3a}.btag .upto{font:700 1.35rem/1 var(--hand);color:#3a2410;margin-top:2px}.btag #budget{width:3.2ch;border:0;border-bottom:2px dashed #8e1a2e66;background:transparent;text-align:center;font:400 clamp(2.2rem,3.2vw,2.9rem)/1 var(--serif);color:#8e1a2e;padding:0}.btag #budget::placeholder{color:#8e1a2e;opacity:1}.btag #budget:focus{outline:none;box-shadow:none;border-bottom-color:#8e1a2e;background:#fff8;border-radius:3px}.btag #currency{margin-top:3px;border:0;background:transparent;font:700 .7rem var(--sans);letter-spacing:.08em;color:#5a3a28;cursor:pointer;padding:2px 4px}.jar{width:clamp(118px,12vw,180px);height:auto;position:relative;z-index:1}.coins{display:flex;justify-content:center;gap:8px;margin-top:10px;flex-wrap:wrap}.coins button{width:50px;height:50px;border-radius:50%;border:0;cursor:pointer;font:400 .95rem var(--serif);color:#5a3a08;background:radial-gradient(circle at 35% 30%,#fff3c4,#e8b450 45%,#a8741c);box-shadow:inset 0 0 0 3px #f6d68a,inset 0 0 0 5px #b9832a,0 4px 5px #0006;transition:transform .2s var(--ease-pop)}.coins button[data-b=""]{font-size:.62rem;font-weight:700;font-family:var(--sans);line-height:1;padding:0 6px}.coins button:hover{transform:translateY(-3px) rotate(-8deg)}.coins button[aria-checked=true]{transform:translateY(-5px);box-shadow:inset 0 0 0 3px #f6d68a,inset 0 0 0 5px #b9832a,0 0 0 3px #8e1a2e,0 6px 8px #0007;color:#3a1a04}.swap{display:flex;flex-direction:column;align-items:center;gap:2px;margin:14px auto 0;max-width:220px;rotate:2deg;padding:16px 16px 14px}.swap .hand{font-size:1.3rem;color:#8e1a2e}.swap input{border:0;border-bottom:2px dashed #8e1a2e66;background:transparent;font:700 1.05rem var(--sans);color:#2a1a1e;text-align:center;padding:2px;min-height:36px}.bellcol{position:relative;padding-top:0;margin-top:-7.5vw;display:flex;flex-direction:column;align-items:center}.bellrig{--f: 0;position:relative;width:min(100%,38vw,620px);margin-left:-30%;aspect-ratio:var(--ar);z-index:3}.bellcol .gonote{margin-left:-30%}.bellrig>img,.b-lever{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.b-body{filter:drop-shadow(0 20px 18px #1f0b0470)}.b-bell{transform-origin:50% 36%}.b-lever{background:url(/img/v3/bell-lever.webp) 0 0 / calc(var(--n) * 100%) 100% no-repeat;background-position-x:calc(var(--f) / (var(--n) - 1) * 100%)}.bellrig .elf.e3{position:absolute;z-index:-1;width:46%;left:-14%;top:4%;rotate:-8deg}.b-btn{position:absolute;left:var(--bfx);top:var(--bfy);width:var(--bfw);height:var(--bfh);transform:translate(-50%,-50%);border:0;border-radius:46% 46% 14% 14%/40% 40% 22% 22%;background:transparent;color:#fbe6c2;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font:400 clamp(1.35rem,2.35vw,2.3rem)/1.02 var(--serif);text-shadow:0 2px 0 #4a0410,0 0 14px #0007;-webkit-tap-highlight-color:transparent}.b-btn .b-txt{max-width:5.6em}.b-btn .flour{width:64%;height:auto}.b-btn:focus-visible{outline:3px solid var(--gold-lt);outline-offset:6px;box-shadow:none}.b-btn[disabled]{cursor:progress}.b-grab{position:absolute;left:50%;top:0;width:34%;height:34%;cursor:grab;touch-action:none;border-radius:50%}.b-grab:active{cursor:grabbing}.bellrig.ring .b-bell{animation:ring 1s ease-out}@keyframes ring{0%{transform:rotate(0)}15%{transform:rotate(7deg)}35%{transform:rotate(-6deg)}55%{transform:rotate(3.5deg)}75%{transform:rotate(-1.5deg)}to{transform:rotate(0)}}.gonote{margin-top:2px;text-align:center;color:#f2e2cf;font-size:.9rem;max-width:300px;text-shadow:0 1px 6px #000c;position:relative;z-index:3}.bellcol .crate{position:absolute;right:-8%;top:calc(min(38vw,620px)*1.02 - 9vw);width:min(22vw,330px);z-index:2;filter:drop-shadow(0 16px 14px #0009)}@media(min-width:1101px){body.app:has(.desk) .appbar{display:none}}.finep{color:#e9d6c2;font-size:.92rem;margin-top:6px;max-width:40rem;text-shadow:0 1px 4px #000c}.gonote .hand{display:block;color:#ffd98a;font-size:1.55rem;line-height:1.05}.bellcol .err{margin-top:14px;max-width:320px}.desk:not(.ready) .extras .lined,.desk:not(.ready) .extras .note{border-image:none;background-image:none}.extras{position:relative;z-index:2;width:min(100%,1240px);margin:10px auto 0;padding:0 3.8vw 30px}.extras h2{color:#fff1dc;font-size:clamp(1.5rem,2.4vw,2.1rem);text-shadow:0 2px 10px #000a}.extras h2 .hand{font-size:.8em;color:#ffd98a}.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 40px;align-items:start;margin-top:18px}.named{rotate:-1.2deg;padding:26px 22px 22px}.named .dname{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0}.named .dname input{width:100%;text-align:left}.letter{display:block;rotate:-1deg}.letter .ttl,.looks .ttl{font-size:1.5rem;color:#8e1a2e;display:block}.letter textarea{width:100%;border:0;background:transparent;resize:vertical;font:700 1.45rem/34px var(--hand);color:#2a1a1e;min-height:140px;padding:0;margin-top:4px}.letter textarea::placeholder{color:#8a6a5a}.letter textarea:focus{outline:2px dashed #8e1a2e88;outline-offset:4px}.later{rotate:1.5deg;padding:26px 20px 20px}.later .check{margin:0;color:var(--ink)}.later .field{margin:12px 0 0}.later .lbl{color:#8e1a2e}.looks{background:url(/tex/paper.webp) var(--paper);padding:16px 16px 18px;border-radius:4px;rotate:-.6deg;box-shadow:0 12px 18px -8px #000a}.themepick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.themepick button{border:0;background:url(/tex/wood.webp) #5a3420;background-size:256px;padding:5px 5px 7px;cursor:pointer;display:flex;flex-direction:column;gap:5px;align-items:center;color:var(--cream);box-shadow:0 8px 12px -6px #000a;border-radius:3px;transition:transform .2s}.themepick img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:1px}.themepick b{font:400 .82rem var(--serif)}.themepick button:hover{transform:rotate(-1.2deg)}.themepick button[aria-checked=true]{box-shadow:0 0 0 3px var(--gold),0 0 0 5px var(--paper),0 10px 16px -6px #000a;transform:translateY(-3px)}.drawstage{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none;background:radial-gradient(60% 55% at 50% 52%,#2a10061a,#12060399 70%,#0a0302d9);animation:dim .5s both}.drawstage .drum{--f: 0;width:min(46vw,420px);aspect-ratio:var(--dar);background:url(/img/v3/drum.webp) 0 0 / calc(var(--dn) * 100%) 100% no-repeat;background-position-x:calc(var(--f) / (var(--dn) - 1) * 100%);filter:drop-shadow(0 26px 22px #000a);animation:rollin .8s cubic-bezier(.2,.9,.3,1.15) both}.drawstage .drawmsg{position:absolute;left:0;right:0;bottom:9vh;text-align:center;display:flex;flex-direction:column;gap:6px;color:var(--cream);text-shadow:0 2px 12px #000c;animation:rise .6s .3s both}.drawstage .drawmsg b{font:400 clamp(1.9rem,4.6vw,3rem) var(--serif)}.drawstage .drawmsg span{color:#f2dccf;font:600 1.45rem var(--hand)}@keyframes dim{0%{opacity:0}}@keyframes rollin{0%{transform:translateY(60vh) rotate(-8deg)}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}}.flytag{position:fixed;z-index:95;pointer-events:none;margin:0}.flytag .seal-stamp{position:absolute;left:50%;top:66%;width:46%;aspect-ratio:1;transform:translate(-50%,-50%) scale(0);background:url(/img/v3/wax-red.webp) center / contain no-repeat;filter:drop-shadow(0 3px 3px #0007)}.flytag.sealed .seal-stamp{animation:stamp .45s var(--ease-pop) forwards}@keyframes stamp{0%{transform:translate(-50%,-50%) scale(2.2);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@media(max-width:1100px){.bench{grid-template-columns:minmax(0,1fr);padding-top:96px;gap:10px}.steps{padding:0 3.8vw}.bellcol{padding-top:10px;margin-top:0}.bellrig{width:100%;max-width:360px;margin-left:0}.bellcol .gonote{margin-left:0}.bellcol .crate{display:none}}@media(max-width:760px){.desk .plate{height:100vh;height:100svh;min-height:760px}.steps{padding:58px 8px 0}.steps ol{gap:8px}.bauble{--s: min(21vw, 86px)}.steps li:nth-child(2) .bauble{--drop: 30px}.steps li:nth-child(3) .bauble{--drop: 22px}.steps li:nth-child(4) .bauble{--drop: 34px}.bauble:before{height:calc(var(--drop, 20px) + 70px)}.bench{padding:82px 6px 20px}.mat{border-width:40px 34px;border-image-width:40px;padding:0 0 6px;min-height:0}.mat .elf{width:104px;margin-bottom:30px}.mat .elf.e2{width:96px;right:4%}.mat-head{margin-top:-14px}.line{--tw: 94px;gap:2px 8px}.lower{grid-template-columns:1fr}.ribbon,.rule{margin-inline:auto}.budgetcol{margin-top:6px}.extras-grid{grid-template-columns:1fr}.bellrig{max-width:300px}.bellrig .elf.e3{width:40%;left:-8%}}@media(prefers-reduced-motion:reduce){.bauble{animation:none}}
