:root{--canvas:#FAF7F2;--surface:#FFFFFF;--ink:#302A27;--muted:#71675F;--primary:#75435B;--tint:#F2E7EC;--border:#E5DED5;--control:#8D837B;--accent:#F1DCA6;--primary-pressed:#5D3347;--success:#44664E;--success-bg:#EAF0E7;--warning:#825A12;--warning-bg:#FFF2D6;--error:#A23832;--error-bg:#FBEAE7;--font-ui:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:var(--font-ui);--text-title-size:30px;--text-title-line:36px;--text-title-weight:700;--text-title-tracking:-0.035em;--text-heading-size:20px;--text-heading-line:26px;--text-heading-weight:700;--text-body-size:16px;--text-body-line:24px;--text-body-weight:400;--text-label-size:14px;--text-label-line:20px;--text-label-weight:500;--text-button-size:16px;--text-button-line:24px;--text-button-weight:600;--text-instruction-size:18px;--text-instruction-line:28px;--text-counter-size:76px;--text-counter-line:84px;--text-counter-weight:600;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--radius-input:12px;--radius-button:16px;--radius-card:20px;--radius-sheet:28px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--touch-min:48px;--button-min-height:52px;--counter-min-height:64px;color-scheme:light;--bg:var(--canvas);--card:var(--surface);--green:var(--primary);--text:var(--ink)}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/PlusJakartaSans-400.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/PlusJakartaSans-500.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/PlusJakartaSans-600.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/PlusJakartaSans-700.woff2) format("woff2")}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--text);font-family:var(--font-ui);font-size:var(--text-body-size);line-height:var(--text-body-line)}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit;border:0;background:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:3px}#app{background:var(--bg);max-width:430px;height:100dvh;min-height:min(600px,100dvh);margin:auto;position:relative;overflow:hidden}.screen{height:100%;overflow:auto;padding:calc(64px + var(--safe-top)) 16px calc(108px + var(--safe-bottom));scrollbar-width:none;scroll-padding-bottom:calc(108px + var(--safe-bottom))}.screen::-webkit-scrollbar{display:none}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:8px}.round{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);color:var(--green);font-size:25px}.back{font-size:27px;color:var(--ink)}.streak{margin-left:auto;border-radius:24px;padding:10px 14px;background:var(--tint);font-weight:600}.green,.streak span{color:var(--green)}h1{font-size:34px;line-height:1.1;margin:0 0 18px;letter-spacing:-.6px}h2{font-size:21px;line-height:1.25;margin:22px 0 12px}h3{font-size:17px;margin:0 0 9px}p{line-height:1.45}.muted,small{color:var(--muted);font-size:13px}.search{width:100%;background:var(--surface);border:0;border-radius:11px;padding:9px 12px;margin-bottom:18px}.card{border-radius:16px;padding:16px;margin:10px 0}.card,.row{background:var(--card)}.row{width:100%;display:flex;align-items:center;text-align:left;gap:13px;padding:16px 12px;border-radius:13px;min-height:62px}.row+.row{margin-top:7px}.row .icon{color:var(--green);font-size:22px;width:24px;text-align:center}.icon svg{display:block;width:var(--icon-size,22px);height:var(--icon-size,22px);margin:auto}.row .copy{flex:1}.row small{display:block;margin-top:4px;font-size:12px}.row .icon-arrow-right,.row .icon-chevron{color:var(--control)}.selected{background:var(--green)!important}.check{margin-left:auto}.primary{background:var(--green);border-radius:30px;width:100%;min-height:52px;padding:14px;font-size:16px;font-weight:600}.primary:disabled{color:var(--muted);cursor:default}.secondary{background:var(--surface);border-radius:25px;width:100%;padding:14px}.link{color:var(--green);padding:12px}.bottom{bottom:0;background:var(--bg);text-align:center;padding:10px 20px calc(20px + var(--safe-bottom))}.bottom,.bottom:before{position:absolute;left:0;right:0}.bottom:before{content:"";bottom:100%;height:28px;background:linear-gradient(to top,var(--bg),transparent);pointer-events:none}.onboarding{padding-bottom:130px}.progress{height:3px;background:var(--border);margin:20px 0 32px}.progress span{display:block;height:100%;background:var(--green)}.onboarding h2{font-size:21px;margin-top:0}.onboarding .row{margin-top:8px;min-height:66px}.onboarding .subtitle{margin-bottom:22px}.hero{text-align:center;display:flex;flex-direction:column;justify-content:center;min-height:68%}.hero img{width:220px;height:230px;object-fit:contain;margin:10px auto 24px}.logo{width:138px!important;height:138px!important;border-radius:34px;margin:20px auto!important}.features{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;text-align:center}.feature{background:var(--card);flex:0 0 90px;min-width:90px;padding:18px 10px;border-radius:15px;font-size:12px}@media (max-width:350px){.feature{line-height:1.6;padding:14px 8px}}.feature .icon{font-size:25px;display:block;margin-bottom:10px;color:var(--green)}nav{position:absolute;bottom:calc(18px + var(--safe-bottom));left:16px;right:16px;height:70px;border-radius:40px;backdrop-filter:blur(16px);border:1px solid var(--border);display:flex;z-index:5;padding:5px}nav button{flex:1;min-width:0;position:relative;border-radius:34px;font-size:10px;padding:4px 0;display:flex;flex-direction:column;gap:3px;align-items:center}nav button .icon{font-size:25px}.nav-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:360px){nav{left:6px;right:6px;padding:3px;gap:4px}.nav-label{letter-spacing:-.6px}}@media (max-width:300px){.nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}nav button{justify-content:center}}nav button .icon svg{width:24px;height:24px}nav button.active{color:var(--green)}.fab{position:absolute;bottom:calc(106px + var(--safe-bottom));right:18px;width:54px;height:54px;border-radius:50%;background:var(--green);font-size:33px;box-shadow:0 4px 12px #0002}.folders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}.folder{min-height:100px;background:var(--card);border-radius:12px;position:relative;text-align:left;padding:20px 13px 12px;font-size:13px}.folder:before{content:"";position:absolute;top:-8px;left:0;width:42px;height:18px;background:var(--card);border-radius:10px 10px 0 0}.folder .icon{display:block;color:var(--green);margin:0 0 12px;font-size:20px}.folder small{display:block;margin-top:3px;font-size:10px}.sectiontitle{display:flex;align-items:center;justify-content:space-between}.sectiontitle h2{margin-top:14px}.chips{display:flex;gap:8px;overflow:auto;margin:0 -2px 20px;scrollbar-width:none}.chip{white-space:nowrap;padding:8px 14px;border-radius:18px;background:var(--tint);color:var(--green);font-size:12px}.chip.active{background:var(--green)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tool{background:var(--card);border-radius:14px;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:15px 10px}.tool .icon{--icon-size:26px;color:var(--green);border-radius:50%;background:var(--tint);width:50px;height:50px;display:grid;place-items:center;margin-bottom:12px}.tool strong{font-size:16px}.tool small{font-size:11px;margin-top:5px;line-height:1.3;max-width:140px}.masonry{column-count:2;column-gap:10px}.pattern{margin:0 0 10px;break-inside:avoid;padding:0;border-radius:16px;overflow:hidden;position:relative;background:var(--card)}.pattern,.pattern img{display:block;width:100%}.pattern span{display:block;padding:12px;font-size:13px;text-align:left}.cover{width:calc(100% + 32px);margin:0 -16px;max-height:280px;object-fit:cover}.center{text-align:center}.metadata{display:flex;justify-content:space-between;font-size:13px;padding:16px 0;gap:15px}.metadata span:last-child{color:var(--muted);text-align:right}.thumb{width:66px;height:66px;object-fit:cover;border-radius:22px}.empty{text-align:center;padding:65px 20px;border-radius:20px;background:var(--card);margin-top:36px}.empty .icon{--icon-size:44px;color:var(--green);display:block}.empty strong{display:block;margin:15px 0 4px}.tabs{display:flex;margin-bottom:20px}.tabs button{flex:1;padding:12px 4px;color:var(--muted);font-size:13px}.tabs .active{border-bottom:2px solid var(--green)}.switch{display:flex;justify-content:space-between;align-items:center;margin:18px 0;padding:12px;border-radius:12px;background:var(--card);font-size:13px}input[type=checkbox]{accent-color:var(--green);width:35px;height:20px}label.field{display:block;margin:16px 0;font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{display:block;width:100%;background:var(--canvas);border:1px solid var(--control);border-radius:10px;padding:12px;margin-top:7px}.counter{font-size:120px;display:grid;place-items:center;min-height:420px;width:100%;font-weight:700}.counter-controls{display:flex;gap:12px;justify-content:center}.counter-controls button{min-width:65px}.rewardstrip{display:flex;gap:18px;overflow:auto;margin:20px 0}.reward{flex:0 0 95px;text-align:center}.reward .icon{--icon-size:34px;display:grid;place-items:center;border-radius:25px;background:var(--tint);height:86px;color:var(--primary)}.reward small{display:block;font-size:11px;min-height:43px;padding-top:10px}.settings .card{padding:3px 8px}.settings .row{border:0;border-radius:0;background:none;border-bottom:1px solid var(--border)}.settings .row:last-child{border:0}.settings h2{color:var(--muted);font-size:13px;margin:24px 8px 10px;font-weight:400}.settings-profile{margin-top:24px}.community-post{display:block;padding:0;overflow:hidden;margin-bottom:10px}.community-post .community-head,.community-post h3,.community-post p{margin-left:16px;margin-right:16px}.community-head{display:flex;justify-content:space-between;padding-top:15px;gap:8px}.community-post p{color:var(--muted);text-align:left}.community-post img{display:block;width:100%;max-height:270px;object-fit:cover}.community-post h3{padding:14px 0 16px;text-align:left}.community-detail{padding:0 0 18px;overflow:hidden}.community-detail h2,.community-detail p:not(.green){margin-left:16px;margin-right:16px}.post-actions{display:flex;gap:10px;padding:0 16px}.widget-preview{border-radius:16px;padding:16px;margin:16px 0}.notice{padding:12px;border:1px solid var(--border);border-radius:12px;font-size:13px;line-height:1.4;margin:14px 0}.yarnlet-host{position:relative}#toast{position:absolute;bottom:calc(188px + var(--safe-bottom));left:50%;transform:translateX(-50%);max-width:360px;min-width:230px;color:var(--canvas);padding:14px 20px;border-radius:16px;z-index:20;display:none;font-size:14px;box-shadow:0 5px 30px #0007}.modalshade{position:absolute;inset:0;background:#0007;z-index:10;display:flex;align-items:flex-end}.sheet{position:relative;border-radius:28px 28px 0 0;padding:24px 18px 35px;width:100%;max-height:90%;overflow:auto}.sheet-close{position:absolute;top:var(--space-4);right:var(--space-4)}.sheet h2{margin:0}.swatches{display:flex;gap:8px;margin:20px 0}.swatches button{height:70px;flex:1;border-radius:12px}.squares{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin:20px 0}.squares button{aspect-ratio:1;border-radius:5px}.welcome h2{font-size:24px}.welcome{padding-top:76px;padding-bottom:150px}@media (min-width:600px){#app{height:900px;max-height:calc(100dvh - 36px);min-height:min(600px,calc(100dvh - 36px));margin:18px auto;border-radius:32px;box-shadow:0 20px 90px #0007;border:1px solid var(--border)}.screen{padding-top:calc(30px + var(--safe-top))}.welcome{padding-top:45px}}@media (max-height:750px){.screen{padding-top:calc(22px + var(--safe-top))}.onboarding .row{min-height:54px}.hero img{height:170px}.tool{min-height:138px}.welcome .logo{width:100px!important;height:100px!important}.welcome{padding-top:22px}}.switch input{appearance:none;width:44px;height:26px;background:var(--control);border-radius:20px;position:relative;cursor:pointer}.switch input:checked{background:var(--primary)}.switch input:before{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);box-shadow:0 1px 4px #0003;transition:transform .15s}.switch input:checked:before{transform:translateX(18px)}.loading-dots{display:flex;gap:8px;justify-content:center;margin:70px 0}.loading-dots i{width:24px;height:24px;background:var(--green);border-radius:50%;animation:bounce .8s ease-in-out infinite alternate}.loading-dots i:nth-child(2){animation-delay:.2s}.loading-dots i:nth-child(3){animation-delay:.4s}@keyframes bounce{to{transform:translateY(-15px)}}.masonry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;columns:auto}.masonry .pattern{width:100%}.price-yarn{padding-top:14px}.price-yarn+.price-yarn{border-top:1px solid var(--border);margin-top:14px}.price-actions{margin-top:14px}.price-actions button{display:flex;align-items:center;justify-content:center;gap:7px}.price-actions .icon svg{width:20px;height:20px}.price-extra summary{cursor:pointer;font-size:18px;font-weight:600;padding:4px 0}.price-extra[open] summary{margin-bottom:14px}.price-presets{display:flex;gap:8px;margin:16px 0}.price-presets button{flex:1;font-size:16px;padding:10px 6px}#price input[type=range]{width:100%;accent-color:var(--green);margin:6px 0 16px}#margin-label{float:right}#price-result{scroll-margin-bottom:100px}.price-toolbar{display:flex;gap:var(--space-2);margin-left:auto}.pattern-title{font-size:20px;line-height:26px;margin:22px 0 12px;letter-spacing:-.5px;font-weight:700}.section-subheading{font-size:18px;line-height:24px;font-weight:600;margin-bottom:9px}.pattern-cover{width:100%;margin:0;border-radius:16px;max-height:290px}.pattern-metadata{padding:0 16px}.pattern-meta-row{width:100%;display:flex;align-items:center;gap:12px;padding:17px 0;font-size:14px;text-align:left}.pattern-meta-row+.pattern-meta-row{border-top:1px solid var(--tint)}.pattern-meta-row>.icon:first-child{color:var(--green);background:var(--bg);padding:9px;border-radius:50%}.pattern-meta-row>span:not(.icon){color:var(--muted);margin-left:auto;text-align:right;overflow-wrap:anywhere}.pattern-meta-row>.icon:last-child:not(:first-child){color:var(--green)}.pattern-tags{border-top:1px solid var(--tint);padding-bottom:4px}.pattern-tags .chips{margin-left:48px}.pattern-tags .chip{flex:none}.pattern-save{padding:12px 0;background:var(--bg)}#project-notes{width:100%;min-height:160px;padding:12px;color:var(--text);background:var(--bg);border:1px solid var(--control);border-radius:12px;resize:vertical;margin-bottom:10px}.center>.link{display:inline-flex;align-items:center;gap:8px}.screen{padding-left:20px;padding-right:20px}.trial h1,h1{font-size:var(--text-title-size);line-height:var(--text-title-line);font-weight:var(--text-title-weight);letter-spacing:var(--text-title-tracking)}.onboarding h2,.welcome h2,h2{font-size:var(--text-heading-size);line-height:var(--text-heading-line);font-weight:var(--text-heading-weight);letter-spacing:-.025em}.pattern span,h3{font-size:18px;line-height:24px;font-weight:600;letter-spacing:-.02em}p{font-size:var(--text-body-size);line-height:var(--text-body-line)}.folder small,.metadata,.muted,.reward small,.row small,.settings h2,.switch,.tool small,label.field,small{font-size:var(--text-label-size);line-height:var(--text-label-line);font-weight:var(--text-label-weight)}.card,.empty,.feature,.pattern,.row,.tool,.widget-preview{border-radius:var(--radius-card);border:1px solid var(--border)}.card,.row{padding:var(--space-4)}.row{gap:var(--space-3)}.selected,.trial .row.selected{background:var(--tint)!important;color:var(--primary);border-color:var(--primary)}.selected .icon,.selected small{color:var(--primary)!important}.primary,.secondary{border-radius:var(--radius-button);min-height:var(--button-min-height);font-size:var(--text-button-size);line-height:var(--text-button-line);font-weight:var(--text-button-weight)}.fab,.primary{color:var(--surface)}.fab:active,.primary:active{background:var(--primary-pressed)}.secondary{background:var(--tint);color:var(--primary)}.primary:disabled{background:var(--border);color:color-mix(in srgb,var(--ink) 76%,var(--border))}.round{flex-shrink:0;background:var(--surface);color:var(--primary);border-color:var(--border)}.round,.trial .round{width:var(--touch-min);height:var(--touch-min)}.field input,.field select,.field textarea,.search{color:var(--ink);background:var(--surface);border:1px solid var(--control);border-radius:var(--radius-input);min-height:var(--touch-min)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.field textarea{font-size:var(--text-instruction-size);line-height:var(--text-instruction-line)}.tabs .active{color:var(--ink)}nav{border-radius:var(--radius-card);background:var(--surface);box-shadow:0 4px 20px #302a270a}nav button{color:var(--muted);border-radius:var(--radius-button);min-height:var(--touch-min)}nav button.active{color:var(--primary);background:var(--tint);font-weight:700}.chip{background:var(--surface);color:var(--muted);min-height:var(--touch-min);border:1px solid var(--border)}.chip.active{color:var(--primary);background:var(--tint);border-color:var(--primary)}.link,.tabs button{min-height:var(--touch-min)}.sheet{background:var(--surface);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0}.counter{font-size:var(--text-counter-size);line-height:var(--text-counter-line);font-weight:var(--text-counter-weight);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.035em}.counter-controls button{min-height:var(--counter-min-height)}.notice{background:var(--warning-bg);color:var(--warning)}#toast{background:var(--ink);color:var(--surface)}.widget-preview{background:var(--tint)}.cover{width:calc(100% + 40px);margin-left:-20px;margin-right:-20px}.features,.folders,.grid{gap:var(--space-3)}:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media (min-width:600px){#app{border-color:var(--border);box-shadow:0 16px 60px #302a2714}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.streak{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min)}.notice{background:var(--tint);color:var(--primary);font-size:var(--text-instruction-size);line-height:var(--text-instruction-line)}.sectiontitle>button{min-width:var(--touch-min);min-height:var(--touch-min)}.activation-card{margin:0 0 24px;padding:20px;background:var(--surface)}.activation-card h2,.project-start h2{margin:0 0 8px}.activation-card>p{margin:0 0 16px}.activation-card .link{display:block;width:100%}.activation-project{display:flex;gap:12px;align-items:center;margin-bottom:16px}.activation-project img{width:72px;height:80px;object-fit:cover;border-radius:12px}.activation-project h2{font-size:18px;line-height:24px}.activation-project p{margin:0}.eyebrow{font-size:14px;font-weight:500;color:var(--muted)}.starter-pattern{margin:12px 0}.starter-pattern .thumb{flex-shrink:0}.discover-count{margin:-8px 0 16px}.pattern small{display:block;margin-top:6px;font-size:12px;line-height:18px}.project-start{margin-top:16px}.project-start p{margin-bottom:16px}.screen:has(.project-start) .pattern-cover{max-height:160px}button.pattern-meta-row{border:0;background:transparent;color:var(--ink);display:grid;grid-template-columns:38px minmax(0,1fr) 20px;column-gap:12px;row-gap:4px}button.pattern-meta-row>.icon:first-child{grid-column:1;grid-row:1/3}button.pattern-meta-row>strong{grid-column:2;grid-row:1}button.pattern-meta-row>span:not(.icon){grid-column:2;grid-row:2;margin-left:0;text-align:left}button.pattern-meta-row>.icon:last-child{grid-column:3;grid-row:1/3}textarea[name=feedback]{width:100%;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--ink);font:inherit;resize:vertical}.language-link{display:block;text-align:right;font-size:13px;color:var(--primary);margin:0 0 16px;text-decoration:underline}.instructions{margin:24px 0}.instructions h2{margin:20px 0 16px}.instructions h3{margin:28px 0 10px;font-size:var(--text-heading-size);line-height:var(--text-heading-line)}.instructions p{white-space:pre-line;font-size:var(--text-instruction-size);line-height:var(--text-instruction-line);overflow-wrap:anywhere;margin:0 0 16px}.instructions figure{margin:18px 0}.instructions figure img{display:block;width:100%;height:auto;margin-inline:auto;border-radius:12px;background:var(--surface)}.instructions-table{overflow-x:auto;margin:12px -20px 20px;padding:0 20px;scrollbar-width:none}.instructions-table::-webkit-scrollbar{display:none}.instructions-table table{border-collapse:collapse;width:100%;font-size:16px}.instructions-table td{border-bottom:1px solid var(--border);padding:10px 12px;text-align:left;min-width:65px;vertical-align:top}.instructions-table td:first-child{min-width:140px;font-weight:600}.goal-opener{padding-top:62px;padding-bottom:32px}.goal-opener-heading{text-align:center;margin:0 auto 30px;max-width:340px}.goal-opener-heading h1{font-size:36px;line-height:.98;font-weight:700;letter-spacing:-.035em;margin:0;text-wrap:balance}.goal-opener-heading p{color:var(--muted);font-size:18px;font-weight:600;margin:12px 0 0;text-wrap:balance}.goal-opener-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.goal-opener-card{display:flex;flex-direction:column;height:190px;overflow:hidden;border-radius:26px;padding:0;background:var(--surface);box-shadow:0 10px 28px #75435c16;text-align:left}.goal-opener-art{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;padding:8px 12px 0}.goal-opener-art img{width:132px;height:100%;max-width:100%;object-fit:contain}.goal-opener-label{display:flex;gap:8px;align-items:center;justify-content:space-between;width:100%;min-height:66px;padding:10px 12px;background:var(--primary);color:white;font-size:16px;font-weight:700;line-height:1.12}.goal-opener-label>span{display:grid;place-items:center;flex:0 0 30px;height:30px;background:#ffffff26;border-radius:50%;font-size:27px}.goal-opener-card:active{transform:scale(.98)}.goal-opener-card:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.recommended-project{display:grid;grid-template-columns:80px minmax(0,1fr);gap:14px;padding:14px}.recommended-project>img{width:80px;height:100px;object-fit:cover;border-radius:12px}.recommended-project small,.recommended-project strong{display:block}.recommended-project small{margin-top:5px;color:var(--muted)}.recommended-project .link{padding:8px 0;text-align:left}.recommended-project .secondary{margin:4px 0 0;padding:12px 8px}.recommended-project.selected{outline:2px solid var(--primary);outline-offset:-2px}.session-plan{background:var(--tint);color:var(--primary);border-radius:12px;padding:12px 14px}.resume-note{margin:6px 0 0;font-size:13px}.activation-project h2,.resume-note{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}@media(max-width:350px){.goal-opener{padding-top:40px}.goal-opener-heading h1{font-size:32px}.goal-opener-label{font-size:14px;padding:10px}.goal-opener-card{height:180px}.recommended-project{grid-template-columns:64px minmax(0,1fr);gap:10px}.recommended-project>img{width:64px;height:85px}}.pattern-checklist{margin-top:18px}.pattern-checklist .row{width:100%;min-width:0}.pattern-checklist .row>span{min-width:0;overflow-wrap:anywhere}.pattern-checklist .row>svg{flex-shrink:0}.subscription-card{border:1px solid var(--border);background:var(--tint)}.subscription-card h2{margin:4px 0 12px}.subscription-controls{display:grid;gap:14px}.subscription-controls p{margin:0}.billing-error{color:var(--error);background:var(--error-bg);padding:12px;border-radius:12px}.screen.project-reader{padding-bottom:202px}.reader-counter{position:absolute;bottom:calc(98px + var(--safe-bottom));left:20px;right:20px;z-index:4;padding:10px 12px;border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 18px #302a2718}.reader-counter,.reader-counter>span{display:flex;align-items:center;gap:10px}.reader-counter>span{flex:1}.reader-counter strong{font-size:28px;font-variant-numeric:tabular-nums}.reader-counter button{width:54px;min-height:48px;margin:0;padding:4px;font-size:28px}#app:has(>.fab)>.screen{padding-bottom:calc(174px + var(--safe-bottom));scroll-padding-bottom:calc(174px + var(--safe-bottom))}#app:has(>.bottom)>.screen{padding-bottom:calc(var(--bottom-h, 150px) + 24px);scroll-padding-bottom:calc(var(--bottom-h, 150px) + 24px)}.fab{box-shadow:0 8px 24px #302a2733,0 2px 6px #302a271f}@font-face{font-family:Nunito Paywall;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/Nunito-Variable.woff2) format("woff2")}body:has(.trial-paywall){background:#fbf8f1}#app:has(>.trial-paywall){min-height:0;background:#fbf8f1;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.trial-paywall{--paywall-blue:#146EF5;--paywall-ink:#1e2b20;--paywall-muted:#5c6b5e;--paywall-line:#e8e2d2;display:flex;flex-direction:column;height:100%;overflow-y:auto;overscroll-behavior-y:contain;padding-top:calc(16px + var(--safe-top));font-family:Nunito Paywall,system-ui,sans-serif;color:var(--paywall-ink);line-height:1.5;-webkit-font-smoothing:antialiased}.trial-paywall button:focus-visible{outline-color:var(--paywall-blue)}.trial-paywall .screen.trial{display:flex;flex:0 0 auto;min-height:0;height:auto;overflow:visible;padding:0 20px;scroll-padding:12px;scrollbar-width:auto}.trial-paywall .screen.trial::-webkit-scrollbar{display:initial}.trial-close{position:absolute;top:calc(10px + var(--safe-top));right:12px;z-index:1;width:36px;height:36px;background:transparent;border:0}.trial-details{flex:0 0 auto;padding:0 20px 24px;text-align:center}.trial-intro{width:100%;margin:0;padding:12px 0;text-align:center}.trial-logo{display:block;width:56px;height:56px;margin:0 auto;object-fit:cover;border-radius:18px;background:white;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.trial h1{margin:16px 0 0;font-size:32px;line-height:1.06;font-weight:900;letter-spacing:normal}.trial-subtitle{margin:10px 0 0;color:var(--paywall-muted);font-size:15px;font-weight:600;line-height:1.5}.trial-project{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:16px}.trial-project p,.trial-project small,.trial-project strong{margin:0;font-size:13px;font-weight:700;line-height:1.5}.trial-project small{color:var(--paywall-ink)}.trial-project strong{overflow-wrap:anywhere}.trial-project p{color:var(--paywall-muted)}.trial-benefits{display:grid;gap:16px;margin:24px 0 0;padding:24px;border-radius:24px;background:white;box-shadow:0 18px 40px #11182714;list-style:none;text-align:left}.trial-benefits li{display:flex;align-items:flex-start;gap:12px;font-size:14px;font-weight:600;line-height:1.375}.trial-benefits li>span:first-child{flex:0 0 auto;margin-top:2px;color:var(--paywall-blue);font-size:18px;font-weight:900;line-height:1}.trial-paywall .trial-footer{position:static;flex:0 0 auto;padding:16px 20px calc(20px + var(--safe-bottom));border-top:1px solid var(--paywall-line);background:#fbf8f1;box-shadow:0 -10px 30px #1118270a}.trial-footer:before{display:none}.trial-plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;text-align:left}.trial-plan{position:relative;display:flex;flex-direction:column;min-width:0;padding:14px;border:2px solid var(--paywall-line);border-radius:18px;background:white;text-align:left;transition:border-color .15s,box-shadow .15s}.trial-plan[aria-pressed=true]{border-color:var(--paywall-blue);box-shadow:0 10px 24px #146ef524}.trial-plan-heading{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:15px;font-weight:900;line-height:1.5}.trial-plan-heading strong{font-weight:900}.trial-radio{display:grid;place-items:center;flex:0 0 24px;height:24px;border:2px solid var(--paywall-line);border-radius:50%}.trial-plan[aria-pressed=true] .trial-radio{border-color:var(--paywall-blue);background:var(--paywall-blue);color:white}.trial-radio .icon{--icon-size:16px}.trial-price{margin-top:6px;font-size:16px;font-weight:900;line-height:1.5}.trial-monthly{color:var(--paywall-muted);font-size:12px;font-weight:700;line-height:1.5}.trial-plan small{margin-top:4px;color:var(--paywall-muted);font-size:11px;font-weight:600;line-height:1.375}.trial-badge{position:absolute;top:-10px;left:12px;padding:2px 8px;border-radius:999px;background:#FFD814;color:#111;font-size:10px;font-weight:900;line-height:1.5;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 1px 2px #0000000d}.trial-footer .trial-notice{margin:10px 0 0;color:var(--paywall-muted);font-size:10px;font-weight:600;line-height:1.375}.trial-footer .primary{display:block;margin-top:12px;min-height:60px;padding:16px 0;border-radius:999px;background:var(--paywall-blue);color:white;font-size:20px;line-height:1.4;font-weight:900;box-shadow:0 10px 15px -3px #146ef533,0 4px 6px -4px #146ef533;transition:transform .12s}.trial-footer .primary:active{transform:scale(.98)}.trial-footer .primary:disabled{background:#e5e7eb;color:#6b7280;box-shadow:none}.trial-cta-label{display:inline-flex;align-items:center;justify-content:center;gap:8px}.trial-assurance{margin:8px 0 0;color:var(--paywall-muted);font-size:12px;font-weight:700;line-height:1.375}.trial-links{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:12px;color:var(--paywall-muted);align-items:stretch}.trial-links .link{min-height:44px;padding:0 6px;color:inherit;font-size:12px;font-weight:600;line-height:1.5}.trial-links .link,.trial-links>span{display:inline-flex;align-items:center}.counter-step{font-size:30px;line-height:1}.counter{border-radius:var(--radius-card)}.counter:active{background:var(--tint)}.screen>.chips,.screen>.features,.screen>.rewardstrip{margin-inline:-20px;padding-inline:20px}.activation-project img,.community-post img,.cover,.pattern img,.recommended-project>img,.thumb{background:var(--tint)}.pattern img{aspect-ratio:1/1;object-fit:cover}.pattern-cover{aspect-ratio:3/2;object-fit:cover}.community-post img{aspect-ratio:4/3}.pattern-row{padding:0;gap:0;overflow:hidden}.pattern-row-open{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-3);text-align:left;padding:var(--space-3) var(--space-4)}.pattern-row-open .copy{flex:1;min-width:0;overflow-wrap:anywhere}.pattern-row-move{display:grid;place-items:center;width:var(--touch-min);align-self:stretch;min-height:var(--touch-min);color:var(--primary)}.pattern-row-move:active{background:var(--tint)}.sheet>h2:first-child{padding-right:56px}#abbr .row>strong{flex:0 0 68px}.pattern-tags .chip{min-height:0;padding:var(--space-2) var(--space-3)}.welcome{position:relative}.welcome .language-link{position:absolute;top:calc(16px + var(--safe-top));right:20px;margin:0;display:inline-flex;align-items:center;min-height:var(--touch-min)}.welcome{display:flex;flex-direction:column}.welcome>.center{margin-top:auto}.welcome>.features{margin-bottom:auto}.empty .link{color:var(--primary);font-weight:var(--text-button-weight)}.round-spacer{width:var(--touch-min);flex-shrink:0}button.pattern-meta-row{grid-template-columns:38px minmax(0,1fr) 24px}.activation-project{align-items:flex-start}.activation-project>.icon{--icon-size:30px;flex-shrink:0;display:grid;place-items:center;width:72px;height:80px;border-radius:12px;background:var(--tint);color:var(--primary)}.price-extra summary{list-style:none;display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-min)}.price-extra summary::-webkit-details-marker{display:none}.price-extra summary:after{content:"";margin-left:auto;width:9px;height:9px;border-right:2px solid var(--primary);border-bottom:2px solid var(--primary);transform:rotate(45deg) translate(-2px,-2px)}.price-extra[open] summary:after{transform:rotate(-135deg) translate(-3px,-3px)}.pattern-row-move:focus-visible,.pattern-row-open:focus-visible{outline-offset:-3px}.chips{padding-block:5px;margin-bottom:15px}.tool{justify-content:flex-start;padding-top:var(--space-5)}.tool small{max-width:none}main.screen{height:auto;overflow:visible}main.screen a{color:var(--primary)}main.screen a.primary{display:inline-flex;align-items:center;justify-content:center;width:auto;margin:var(--space-2) 0;padding:14px 28px;color:var(--surface);text-decoration:none}.pattern-row-open>.icon,.starter-pattern>.icon{--icon-size:26px;flex-shrink:0;display:grid;place-items:center;width:66px;height:66px;border-radius:22px;background:var(--tint);color:var(--primary)}.folder{display:flex;flex-direction:column;align-items:flex-start}*{-webkit-tap-highlight-color:color-mix(in srgb,var(--primary) 14%,transparent)}.chip:not(.active):active,.community-post:active,.folder:active,.pattern-meta-row:active,.pattern:active,.row:not(.selected):active,.tool:active,nav button:not(.active):active{background:var(--tint)}.pattern-tags .chips{margin-right:0}.trial-links{flex-wrap:wrap}.empty+.primary{margin-top:var(--space-4)}.search::-webkit-search-cancel-button{-webkit-appearance:none;width:20px;height:20px;background:var(--control);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20m4 12.6L14.6 16 12 13.4 9.4 16 8 14.6 10.6 12 8 9.4 9.4 8l2.6 2.6L14.6 8 16 9.4 13.4 12z'/%3E%3C/svg%3E") center /contain no-repeat;cursor:pointer}.pattern-notes,.resume-note{white-space:pre-line}#app:has(.sheet)~#toast{top:calc(var(--space-4) + var(--safe-top));bottom:auto}.bottom .primary+.secondary,.bottom .secondary+.primary,.sheet .primary+.primary,.sheet .primary+.secondary,.sheet .secondary+.primary,.sheet .secondary+.secondary{margin-top:var(--space-3)}.primary.destructive{background:var(--error)}.primary.destructive:active{background:color-mix(in srgb,var(--error) 82%,black)}.secondary.destructive{background:var(--error-bg);color:var(--error)}.secondary.destructive:active{background:color-mix(in srgb,var(--error-bg) 88%,var(--error))}.secondary:active{background:color-mix(in srgb,var(--tint) 88%,var(--primary))}input[type=color]{width:72px;height:var(--touch-min);padding:5px;background:var(--surface);border:1px solid var(--control);border-radius:var(--radius-input);cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:0;border-radius:7px}.rewards-action{margin-top:var(--space-7)}@media (max-height:750px){.trial-paywall{padding-top:calc(8px + var(--safe-top))}.trial-intro{padding:4px 0 12px}.trial-logo{width:32px;height:32px;border-radius:10px}.trial h1{margin-top:8px;font-size:26px}.trial-subtitle{margin-top:8px;font-size:14px}.trial-paywall .trial-footer{padding:12px 16px calc(14px + var(--safe-bottom))}.trial-plans{gap:8px}.trial-plan{padding:10px;border-radius:14px}.trial-plan-heading,.trial-price{font-size:14px}.trial-price{margin-top:4px;line-height:1.3}.trial-monthly{font-size:11px}.trial-plan small{display:none}.trial-footer .trial-notice{margin-top:8px}.trial-footer .primary{min-height:52px;margin-top:10px;padding:12px 10px;font-size:17px}.trial-assurance{margin-top:6px}.trial-links{margin-top:8px;gap:12px}}.screen:has(>.counter){display:flex;flex-direction:column}.screen:has(>.counter)>.counter{flex:1 1 auto;min-height:132px}.trial-paywall{padding-top:calc(8px + var(--safe-top))}.trial-paywall .screen.trial{padding:0 16px}.trial-intro{padding:4px 0 12px}.trial h1{margin:0;font-size:26px;line-height:1.08}.trial-benefits{margin:12px 0 0;padding:12px;gap:6px;border-radius:16px;box-shadow:none}.trial-benefits li{gap:8px;font-size:13px;line-height:1.3}.trial-benefits li>span:first-child{font-size:16px}.trial-paywall .trial-footer{padding:12px 16px calc(8px + var(--safe-bottom));box-shadow:none}.trial-plans{gap:8px}.trial-plan{padding:10px;border-radius:14px}.trial-plan-heading,.trial-price{font-size:14px}.trial-price{margin-top:4px;line-height:1.3}.trial-monthly{font-size:11px}.trial-plan small{display:none}.trial-footer .trial-notice{margin-top:8px}.trial-footer .primary{min-height:48px;margin-top:8px;padding:10px;font-size:17px}.trial-links{margin-top:2px;gap:12px}@media (max-height:700px){.goal-opener{padding-top:24px;padding-bottom:20px}.goal-opener-heading{margin-bottom:20px}.goal-opener-card{height:164px}}