@charset "UTF-8";
:root{--paper:#f3f2e9;--ink:#283f33;--muted:#6c7667;--line:#d9ddcd;--orange:#c96942;--orange-dark:#b05431;--lime:#dce4b8;--ticket:#fffcf1;--mono:Consolas,"SFMono-Regular",monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;color:var(--ink);font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;opacity:.1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23263d32' opacity='.25' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c56b42;outline-offset:5px}input[type=radio]:focus-visible+span{outline:3px solid var(--orange);outline-offset:4px}button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.page{max-width:1232px;margin:auto;padding:0 44px}.site-header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:15px}.brand{text-decoration:none;display:flex;align-items:center;font-size:32px;letter-spacing:-1.8px;font-weight:700}.brand>span:first-child{color:#8b9d5b}.brand-divider{height:21px;width:1px;background:#c7ceba;margin:0 18px 0 23px}.brand-sub{font-size:12px;letter-spacing:.12em;font-weight:400}.pocket-button{display:flex;align-items:center;gap:9px;border:1px solid #c9d0bb;border-radius:100px;background:transparent;padding:10px 15px;font-size:12px}.pocket-button:hover{background:#e8ecd9}.pocket-button svg{width:16px;height:16px}.pocket-button>span{font-family:var(--mono);font-size:10px;min-width:19px;height:19px;display:grid;place-items:center;background:#e3e8d4;border-radius:50%;margin-left:3px}
.intro{padding:47px 0 39px;display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font:10px var(--mono);letter-spacing:.14em;color:var(--muted);margin:0 0 20px;display:flex;align-items:center;gap:9px}.eyebrow>span{width:6px;height:6px;background:#7e925d;border-radius:50%}h1{font-size:clamp(40px,4.5vw,61px);line-height:1.3;margin:0;font-weight:600;letter-spacing:-.06em}.heading-accent{display:inline-block;position:relative;color:#71824d;margin-left:10px}h1 svg{position:absolute;width:100%;height:12px;bottom:-5px;left:0;fill:none;stroke:#b1bd83;stroke-width:2;stroke-linecap:round}.intro-text{font-size:14px;line-height:1.8;color:var(--muted);margin:23px 0 0;letter-spacing:.025em}.intro-aside{display:flex;align-items:center;gap:15px;margin-right:20px}.doodle{width:145px;height:120px}.intro-aside p{font-size:12px;line-height:1.9;color:var(--muted);transform:rotate(-6deg)}.mobile-break{display:none}
.playground{display:grid;grid-template-columns:1fr 1.12fr;gap:73px;align-items:start;padding:12px 0 35px}.controls{padding-top:8px}.section-caption{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.09em;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:25px}.tiny-star{font-size:19px;color:#8d9d65}fieldset{margin:0;padding:0;border:0;min-width:0}legend{font-size:14px;font-weight:550;margin-bottom:16px;padding:0}.modes{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mode:first-child{grid-column:1/-1}.mode{position:relative}.mode input,.times input{position:absolute;opacity:0;width:1px;height:1px}.mode>span{display:flex;align-items:center;gap:13px;border:1px solid #d2d7c5;border-radius:7px;min-height:47px;padding:11px 16px;font-size:13px;transition:background .16s,border-color .16s;cursor:pointer}.mode i{font-style:normal;font-size:20px;line-height:1;width:23px;text-align:center;opacity:.8}.mode>span:hover{background:#e9eddc}.mode input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}.time-field{margin-top:26px}.time-field legend{font-size:13px}.times{display:flex;gap:8px}.times label{flex:1;position:relative}.times span{display:block;text-align:center;font-size:12px;padding:11px 9px;border:1px solid #d2d7c5;border-radius:6px;cursor:pointer}.times input:checked+span{background:var(--lime);border-color:#b4c086;color:#31432a}.times span:hover{border-color:#8f9e6c}.filter-hint{font-size:10px;color:var(--muted);margin:11px 0 0;line-height:1.6;min-height:16px}.draw-button{width:100%;margin-top:25px;border:0;border-radius:7px;color:#fff9ec;background:var(--orange);min-height:57px;display:flex;align-items:center;justify-content:center;gap:12px;font-size:15px;letter-spacing:.07em;box-shadow:0 3px 0 #a54f2e;transition:background .16s,transform .16s,box-shadow .16s}.draw-button>span:last-child{margin-left:auto;font-size:21px}.draw-button>svg{margin-right:auto;margin-left:8px}.draw-button>span:last-child{margin-right:8px}.draw-button:hover{background:var(--orange-dark);transform:translateY(-1px);box-shadow:0 4px 0 #a54f2e}.draw-button:active{transform:translateY(2px);box-shadow:0 1px 0 #a54f2e}.draw-button:disabled{opacity:.75;transform:none}.small-print{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-size:10px;margin-top:19px}.small-print b{font-weight:500;font-family:var(--mono);font-size:11px}.small-divider{height:9px;width:1px;background:#c6cdb8}
.ticket-wrap{position:relative;min-width:0;padding:0 5px 0 0}.ticket{position:relative;background:var(--ticket);border:1px solid #d7dcc9;border-radius:9px;z-index:1;box-shadow:0 6px 18px #2f42200a;min-height:496px;display:flex;flex-direction:column;transform:rotate(1.1deg)}.ticket:before,.ticket:after{content:"";position:absolute;bottom:66px;width:14px;height:14px;border-radius:50%;background:var(--paper);border:1px solid #d7dcc9;z-index:2}.ticket:before{left:-8px;border-left-color:transparent}.ticket:after{right:-8px;border-right-color:transparent}.ticket-shadow{position:absolute;top:12px;bottom:39px;left:11px;right:-6px;background:#e4e7d7;border:1px solid #cfd6bd;border-radius:9px;transform:rotate(-1.1deg)}.ticket-top{font-size:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #e3e5d7;padding:20px 27px;color:var(--muted);letter-spacing:.06em}.ticket-number{font:10px var(--mono);letter-spacing:.11em;white-space:nowrap}.ticket-body{padding:26px 29px 18px;flex:1;min-width:0}.empty-card{min-height:334px;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center}.empty-art{height:132px;width:160px;position:relative;margin:0 auto 20px}.mini-card{position:absolute;display:block;width:84px;height:110px;left:40px;top:10px;border:1px solid #bbc59d;border-radius:6px}.back-card{transform:rotate(-14deg) translate(-17px,-2px);background:#dfe5be}.front-card{transform:rotate(11deg) translate(9px,2px);background:#f8eedb;display:grid;place-items:center}.front-card svg{width:66px;height:66px}.art-dot{position:absolute;border:1px solid #9bab7c;display:block;border-radius:50%;height:6px;width:6px}.art-dot.one{top:18px;right:8px}.art-dot.two{left:8px;bottom:7px;height:4px;width:4px}.empty-card h2{font-size:28px;font-weight:500;line-height:1.5;letter-spacing:.01em;margin:0}.empty-card p{font-size:12px;color:var(--muted);line-height:1.9;margin:18px 0 0}.ticket-bottom{min-height:72px;border-top:1px dashed #cbd1b7;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:15px}.ticket-motto{font-size:10px;color:var(--muted);letter-spacing:.025em}.barcode{width:61px;height:24px;background:repeating-linear-gradient(90deg,#7b8966 0 1px,transparent 1px 3px,#7b8966 3px 5px,transparent 5px 7px,#7b8966 7px 8px,transparent 8px 12px);opacity:.5}.ticket-footnote{display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;color:var(--muted);margin-top:18px;min-height:14px;line-height:1.6}.live-dot{height:5px;width:5px;background:#87996b;border-radius:50%;flex-shrink:0}
.task-meta{display:flex;align-items:center;gap:8px;font-size:10px;color:#68764e;margin:0 0 15px}.task-meta>span{border:1px solid #d9dfc5;border-radius:100px;padding:4px 8px}#task-title{font-size:27px;line-height:1.5;margin:0;font-weight:600;letter-spacing:-.025em}.task-desc{font-size:12px;color:var(--muted);line-height:1.9;margin:13px 0 20px}.task-steps{padding:0;margin:0;list-style:none;counter-reset:steps}.task-steps li{position:relative;padding-left:30px;font-size:12px;line-height:1.8;margin-bottom:12px;counter-increment:steps}.task-steps li:before{content:"0" counter(steps);position:absolute;left:0;top:3px;font:10px var(--mono);color:#8c9b6a}.task-tip{border-top:1px solid #e4e7d6;padding-top:13px;color:#899174;font-size:10px;line-height:1.7;margin:18px 0 0}.task-actions{padding:17px 25px;min-height:72px;border-top:1px dashed #cbd1b7;display:flex;gap:8px}.done-button{flex:1;background:var(--ink);color:#fffdf0;border:1px solid var(--ink);border-radius:5px;font-size:11px;padding:10px 9px;display:flex;gap:8px;align-items:center;justify-content:center;min-height:38px}.done-button:hover{background:#405b40}.done-button:disabled{background:#e8ecd7;color:#6d7e51;border-color:#c8d3aa}.icon-button{border:1px solid #d4dac3;border-radius:5px;background:transparent;width:39px;display:grid;place-items:center;flex-shrink:0}.icon-button svg{width:17px;height:17px}.icon-button:hover{background:#edf0dd}.icon-button[aria-pressed=true]{background:#e1e7c5;border-color:#b6c38c}.icon-button[aria-pressed=true] svg{fill:#7f925b}.ticket.is-done{border-color:#a3b77c}.ticket.is-done .ticket-top{background:#edf1dc;border-radius:9px 9px 0 0}.ticket.is-done #ticket-kicker{color:#54723c}.ticket.is-changing{animation:shuffle .32s ease}.ticket.is-revealing{animation:reveal .4s ease}.ticket.is-celebrating{animation:celebrate .6s ease}
.recent{border-top:1px solid var(--line);margin:20px 0 0;padding:23px 0 29px}.recent-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.recent-header h2{font-size:11px;font-weight:500;margin:0;color:var(--muted)}.recent-header>span{font-size:10px;color:#8b947c}.recent-list{display:flex;flex-wrap:wrap;gap:8px;min-height:34px}.recent-empty{font-size:11px;color:#909882;margin:7px 0 0}.recent-chip{border:1px solid #d5dbc7;background:transparent;border-radius:100px;padding:8px 12px;font-size:11px;max-width:100%;text-align:left}.recent-chip:hover{background:#e7ecd6}.recent-chip>span{font:9px var(--mono);opacity:.6;margin-right:7px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;padding:24px 0 28px;font-size:10px;color:var(--muted)}footer p{margin:0;display:flex;align-items:center;gap:9px}.footer-flower{font-size:18px;color:#81915e}footer>div{display:flex;gap:25px;align-items:center}.footer-lab{font:9px var(--mono);letter-spacing:.08em}.text-button{padding:5px 0;border:0;background:transparent;font-size:10px;color:var(--muted)}.text-button:hover{color:var(--ink);text-decoration:underline}
dialog{width:min(500px,calc(100vw - 32px));border:1px solid #cfd7bd;border-radius:12px;padding:30px;background:var(--ticket);color:var(--ink);max-height:85svh;box-shadow:0 20px 80px #1d30262b}dialog::backdrop{background:#23372d66;backdrop-filter:blur(4px)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.dialog-header h2{margin:0;font-size:23px;font-weight:550}.dialog-header .eyebrow{margin-bottom:10px;font-size:9px}.close-button{border:1px solid #d5dcc7;background:transparent;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-size:23px;line-height:1;flex-shrink:0}.close-button:hover{background:#e5ebd3}.dialog-intro{font-size:12px;color:var(--muted);line-height:1.9;margin:16px 0 21px}.local-note{font-size:10px;line-height:1.9;color:#859071;border-top:1px solid #e1e6d1;padding-top:15px;margin:23px 0 0}.pocket-item{border-top:1px solid #e0e5d0;padding:17px 0;display:flex;align-items:center;gap:12px}.pocket-item>div{flex:1;min-width:0}.pocket-item h3{font-size:14px;line-height:1.6;margin:0 0 4px;font-weight:500}.pocket-item p{font-size:10px;margin:0;color:var(--muted)}.pocket-go{background:#e5ebd1;border:1px solid #c7d0ac;border-radius:5px;font-size:11px;padding:9px 12px;white-space:nowrap}.pocket-empty{text-align:center;padding:30px 10px;font-size:13px;line-height:2;color:var(--muted)}.pocket-empty>span{font-size:35px;display:block;color:#8b9f68;margin-bottom:12px}.share-label{display:block;font-size:11px;line-height:1.8;color:var(--muted);margin-bottom:10px}#share-link{width:100%;border:1px solid #cbd4b5;background:#f0f2e5;color:#485b3a;border-radius:5px;padding:12px;font:12px var(--mono)}.copy-button{width:100%;border:0;border-radius:5px;background:var(--ink);color:#fff9e9;padding:13px;font-size:13px;margin-top:13px}.about-copy{font-size:13px;line-height:2.1;color:var(--muted)}#about-heading{font-size:25px;font-weight:500;margin-top:16px}.about-sign{font-size:13px;line-height:2;margin:28px 0 5px}.about-sign span{display:block;font-family:var(--mono);text-align:right;font-size:12px}
.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,10px);padding:12px 22px;border-radius:100px;background:#2c4538;color:#fcfaee;box-shadow:0 6px 24px #20352526;max-width:calc(100vw - 30px);width:max-content;font-size:12px;line-height:1.6;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:20px;top:-60px;z-index:20;background:var(--ink);color:white;padding:10px 15px;border-radius:5px;font-size:13px}.skip:focus{top:10px}.noscript{padding:15px;text-align:center}.confetti{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.confetti i{position:absolute;width:8px;height:12px;left:var(--x);top:55%;background:var(--color);border-radius:2px;animation:fall 1.4s ease-out forwards;animation-delay:var(--delay)}
@keyframes shuffle{0%,100%{transform:rotate(1.1deg)}25%{transform:rotate(-2deg) translateY(-3px)}75%{transform:rotate(3deg) translateY(-3px)}}@keyframes reveal{from{opacity:.6;transform:rotate(-1deg) translateY(7px)}to{opacity:1;transform:rotate(1.1deg) translateY(0)}}@keyframes celebrate{25%{transform:rotate(-1deg) scale(1.02)}70%{transform:rotate(2deg) scale(1.01)}}@keyframes fall{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--rot))}}
@media(min-width:1450px){.page{padding-top:12px}.intro{padding-top:61px;padding-bottom:48px}.playground{gap:95px;padding-bottom:42px}.ticket{min-height:508px}.empty-card{min-height:346px}.recent{margin-top:23px}}
@media(max-width:900px){.page{padding:0 30px}.playground{gap:35px;grid-template-columns:.95fr 1.05fr}.intro-aside{margin-right:0;gap:0}.doodle{width:115px}.intro-aside p{font-size:11px}.ticket-body{padding:24px 22px 18px}.ticket-top{padding:19px 21px}#task-title{font-size:24px}.task-actions{padding:17px 18px}.ticket-bottom{padding:22px}.brand-sub{font-size:11px}.mode>span{padding:11px;font-size:12px}.task-steps li{font-size:11px}.draw-button{font-size:14px}}
@media(max-width:650px){.page{padding:0 23px}.site-header{height:76px}.brand{font-size:29px}.brand-divider{margin:0 11px 0 14px;height:17px}.brand-sub{font-size:10px;letter-spacing:.05em}.pocket-button{font-size:10px;padding:8px 10px;gap:5px}.pocket-button svg{width:14px;height:14px}.pocket-button>span{width:17px;height:17px;min-width:17px;margin-left:0;font-size:9px}.intro{padding:33px 0 29px;gap:0;position:relative}.eyebrow{font-size:9px;letter-spacing:.09em;margin-bottom:17px}h1{font-size:40px;line-height:1.35;letter-spacing:-.055em}.heading-accent{margin-left:7px}.intro-text{font-size:11px;margin-top:20px;line-height:1.9;max-width:250px}.intro-aside{position:absolute;right:-2px;bottom:16px;pointer-events:none}.doodle{width:77px;height:77px}.intro-aside p{display:none}.mobile-break{display:inline}.playground{grid-template-columns:1fr;gap:31px;padding:0 0 19px;scroll-margin-top:15px}.controls{padding-top:0}.section-caption{padding-bottom:14px;margin-bottom:20px;font-size:9px}.tiny-star{font-size:16px}legend{font-size:12px;margin-bottom:12px}.modes{grid-template-columns:1fr 1fr;gap:7px}.mode:first-child{grid-column:1/-1}.mode>span{min-height:43px;padding:10px 13px;font-size:12px}.mode i{font-size:18px}.time-field{margin-top:20px}.time-field legend{font-size:12px}.times span{padding:10px;font-size:11px}.filter-hint{font-size:10px;margin-top:9px}.draw-button{margin-top:17px;min-height:53px;font-size:14px}.small-print{margin-top:15px;font-size:9px}.ticket-wrap{padding:0 4px 0 0;margin:0 3px}.ticket{min-height:450px;transform:rotate(.7deg)}.ticket-shadow{right:-3px;bottom:34px}.ticket-top{padding:18px 21px;font-size:9px}.ticket-number{font-size:9px}.ticket-body{padding:23px 23px 20px}.empty-card{min-height:301px}.empty-card h2{font-size:26px}.empty-card p{font-size:11px}.empty-art{height:120px;margin-bottom:20px}.ticket-bottom{padding:19px 21px;min-height:64px}.ticket:before,.ticket:after{bottom:58px}.ticket-motto{font-size:9px}.barcode{height:22px}.ticket-footnote{font-size:9px;margin-top:16px}#task-title{font-size:24px}.task-desc{font-size:12px}.task-steps li{font-size:12px;margin-bottom:13px}.task-tip{font-size:10px}.task-actions{padding:14px 19px;min-height:64px}.done-button{font-size:10px;min-height:36px}.recent{margin-top:20px;padding:21px 0}.recent-header h2,.recent-header>span{font-size:10px}.recent-chip{font-size:10px;padding:8px 11px}.recent-list{gap:7px}.recent-empty{font-size:10px}footer{align-items:flex-start;padding:20px 0 23px;font-size:10px}footer>div{flex-direction:column;align-items:flex-end;gap:7px}.footer-lab{font-size:8px}.text-button{font-size:9px;padding:0}.footer-flower{font-size:16px}dialog{padding:24px}.dialog-header h2{font-size:21px}.dialog-intro{font-size:11px}.toast{font-size:11px;bottom:20px;padding:11px 16px}}
@media(max-width:360px){.page{padding:0 17px}.brand-sub{display:none}.brand-divider{display:none}h1{font-size:36px}.doodle{width:65px}.intro-text{max-width:235px}.intro-aside{right:-7px}.task-actions{padding-left:14px;padding-right:14px}.ticket-body{padding-left:20px;padding-right:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.confetti{display:none}}

/* Language controls and room for longer English copy. */
.header-actions{display:flex;align-items:center;gap:15px}.language-switch{display:flex;padding:3px;border:1px solid #c9d0bb;border-radius:100px;gap:2px}.language-switch button{border:0;background:transparent;border-radius:100px;padding:7px 10px;font-size:11px;line-height:1.2;color:var(--muted)}.language-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.language-switch button:hover{background:#e1e7cf;color:var(--ink)}.language-switch button[aria-pressed=true]:hover{background:#405b40;color:var(--paper)}.pocket-button>.pocket-label{background:none;font:inherit;min-width:0;height:auto;display:inline;margin:0;border-radius:0}.about-sign .about-sign-copy{font:inherit;text-align:left;display:inline}html[lang=en] h1{letter-spacing:-.04em}html[lang=en] #task-title{line-height:1.35;letter-spacing:-.025em}html[lang=en] .task-steps li{line-height:1.7}html[lang=en] .ticket-top{font-size:9px}html[lang=en] .intro-text>span+br+span:before{content:" "}html[lang=en] .mode>span{gap:9px}html[lang=en] .draw-button{letter-spacing:0;font-size:14px}html[lang=en] .task-actions .done-button{font-size:11px}
@media(max-width:650px){.brand-divider,.brand-sub{display:none}.header-actions{gap:9px}.language-switch{padding:2px}.language-switch button{padding:6px 8px;font-size:10px}.pocket-button{padding:8px 10px}html[lang=en] h1{font-size:39px}html[lang=en] .mode>span{gap:7px;padding-left:10px;padding-right:8px;font-size:11px}html[lang=en] .mode i{width:18px}html[lang=en] .task-actions{gap:6px;padding-left:15px;padding-right:15px}html[lang=en] .task-actions .done-button{font-size:10px}html[lang=en] .icon-button{width:35px}html[lang=en] footer{gap:9px}html[lang=en] footer>p{max-width:145px;line-height:1.8}html[lang=en] .intro-text{max-width:255px;font-size:10px}.about-sign .about-sign-copy{display:inline}}
@media(max-width:360px){html[lang=en] h1{font-size:34px}html[lang=en] .mode>span{font-size:10px;gap:5px}.header-actions{gap:6px}.language-switch button{padding-left:7px;padding-right:7px}}
.pocket-button>.pocket-label{width:auto;white-space:nowrap;flex-shrink:0}.language-switch,.header-actions{flex-shrink:0}@media(max-width:650px){.site-header{gap:8px}}
