@font-face{font-family:Caprasimo;src:url('/fonts/caprasimo-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/fonts/manrope-800.ttf') format('truetype');font-weight:800;font-display:swap}
:root{--paper:#eee8f5;--ink:#37234f;--muted:#736281;--line:#c9bdd5;--board:#dfd3ec;--tile:#fffcf4;--accent:#e6f28c;--success:#3b694a;--error:#a52c46;--radius:14px;--ease:cubic-bezier(.2,.8,.2,1);color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:400 14px/1.5 Manrope,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:600 14px Manrope,sans-serif;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button,button:focus,a:focus{outline-offset:5px}:focus-visible{outline:3px solid #765696}button svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a{color:inherit;text-underline-offset:4px}::selection{background:var(--accent);color:var(--ink)}[hidden]{display:none!important}button{border:0}button:not(:disabled),a{transition:background-color .18s,color .18s,transform .18s var(--ease)}button:active:not(:disabled){transform:translateY(2px)}.site-shell{max-width:1320px;margin:auto;padding:0 44px}.site-header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:400 49px/.9 Caprasimo,Georgia,serif;letter-spacing:-.035em;text-decoration:none}.brand-dot{color:#74519a}.site-header nav{display:flex;gap:9px}.icon-button{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:transparent}.icon-button:hover{background:var(--board)}main{display:grid;grid-template-columns:1fr minmax(360px,440px) 1fr;gap:55px;align-items:start;padding:32px 0 55px}.intro{padding-top:92px}.intro h1{font:400 clamp(29px,3.2vw,43px)/1.12 Caprasimo,Georgia,serif;letter-spacing:-.025em;margin:0 0 22px}.intro h1 span{color:#765497}.intro p{line-height:1.8;margin:0}.intro-rule{width:35px;border-top:2px solid #ac97be;margin:27px 0}.intro .intro-small{font-size:12px;color:var(--muted)}.intro .text-button{font-size:12px;margin:24px 0 0;text-align:left;padding:0}.intro .text-button span{font-size:17px;margin-left:4px}.game{min-width:0}.date-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;gap:10px;min-height:38px}.date-row>div{display:flex;flex-direction:column;gap:2px}.date-row #puzzle-date{font-weight:800}.puzzle-number{font-size:11px;color:var(--muted)}.archive-trigger{display:flex;align-items:center;gap:7px;padding:10px 0 10px 12px;background:transparent;font-size:12px;min-height:44px}.archive-trigger:hover{color:#8054a5}.archive-trigger svg{width:17px;height:17px}.progress-track{padding:0;margin:23px 8px 25px;display:flex;list-style:none;justify-content:space-between;position:relative}.progress-track:before{content:'';position:absolute;left:15px;right:15px;top:15px;border-top:1px solid var(--line)}.progress-track li{position:relative;border:1px solid var(--line);background:var(--paper);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800}.progress-track li.active{background:var(--ink);color:var(--tile);border-color:var(--ink)}.progress-track li.done{background:var(--ink);color:var(--accent);border-color:var(--ink)}.progress-track li.bonus{border-style:dashed}.progress-track svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.round-heading{text-align:center}.round-heading h2{font:400 28px/1.2 Caprasimo,Georgia,serif;letter-spacing:-.025em;margin:0 0 9px}.round-heading p{font-size:12px;color:var(--muted);margin:0}.answer{display:flex;justify-content:center;gap:5px;margin:25px auto 0;max-width:100%}.answer-slot{width:41px;height:46px;border-bottom:2px solid #a18cae;background:transparent;border-radius:6px 6px 0 0;font-size:23px;font-weight:800;position:relative;text-transform:uppercase;padding:0;flex:0 1 41px;min-width:0}.answer-slot.active{background:#e0d5ea;border-color:var(--ink)}.answer-slot.locked{background:var(--accent);border-color:#a0ae4b;color:var(--ink)}.answer-slot.locked:after{content:'';position:absolute;bottom:3px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:currentColor}.message{height:24px;font-size:12px;text-align:center;margin:10px 0 6px;color:var(--error);font-weight:600}.message.success{color:var(--success)}.wheel{width:294px;height:294px;position:relative;margin:0 auto 23px;border-radius:50%;background:var(--board)}.wheel-ring{position:absolute;inset:35px;border:1px solid #cbb9dc;border-radius:50%;pointer-events:none}.letter{position:absolute;width:54px;height:58px;left:calc(50% - 27px);top:calc(50% - 29px);transform:translate(var(--x),var(--y)) rotate(var(--r));border-radius:13px;background:var(--tile);color:var(--ink);box-shadow:0 4px 6px #37234f16,0 2px 1px #b6a3c5;font-size:28px;font-weight:800;transition:transform .45s var(--ease),background .2s,box-shadow .2s,opacity .2s!important;user-select:none}.letter:hover:not(:disabled){background:white;box-shadow:0 6px 10px #37234f25,0 2px 1px #b6a3c5}.letter:active:not(:disabled){transform:translate(var(--x),calc(var(--y) + 3px)) rotate(0deg);box-shadow:0 1px 2px #37234f15}.letter:disabled{background:#cfc1de;color:#877096;box-shadow:none}.shuffle-button{position:absolute;left:calc(50% - 35px);top:calc(50% - 35px);width:70px;height:70px;border-radius:50%;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#614773;z-index:1}.shuffle-button:hover{background:#d4c5e3}.shuffle-button svg{width:25px;height:25px}.shuffle-button span{font-size:11px}.game-actions{display:flex;justify-content:center;gap:12px}.bumph-button{height:48px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);border-radius:var(--radius);padding:0 22px;font-weight:800;box-shadow:0 2px 4px #37234f0c}.bumph-button:hover{background:#dceb73}.delete-button{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #b6a5c6;background:transparent;border-radius:var(--radius);height:48px;padding:0 18px}.delete-button:hover{background:var(--board)}.delete-button:disabled{opacity:.45}.game-meta{display:flex;align-items:center;justify-content:space-between;max-width:300px;margin:15px auto 0;font-size:11px;color:var(--muted)}.text-button{background:transparent;color:var(--muted);padding:8px 0;font-size:11px;text-decoration:underline;text-underline-offset:4px;min-height:32px}.text-button:hover{color:var(--ink)}.desktop-note{padding-top:151px;margin-left:18px}.note-title{font:400 23px/1.25 Caprasimo,Georgia,serif;color:#886c9f}.desktop-note p{font-size:12px;line-height:1.9;color:var(--muted);margin:18px 0}.note-line{display:block;width:23px;border-top:1px solid #ad98bd;margin:30px 0}.site-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0 22px;font-size:11px;color:var(--muted)}.word-trail{border-top:1px solid var(--line);margin:26px 0 0;padding-top:19px}.word-trail h3{font-size:11px;font-weight:600;color:var(--muted);margin:0 0 10px}.word-trail ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;margin:0;padding:0}.word-trail li{font-size:12px;font-weight:800;letter-spacing:.035em;display:flex;gap:6px;align-items:center}.word-trail li span{font-size:11px;font-weight:400;color:var(--muted)}.word-trail li:last-child{animation:land .4s var(--ease)}.loading{text-align:center;padding:100px 0}.loading-piece{display:inline-grid;place-items:center;width:65px;height:70px;border-radius:14px;background:var(--tile);font:40px Caprasimo;animation:bob 1.3s infinite alternate}.loading p{color:var(--muted);font-size:12px;margin-top:25px}.result{text-align:center;padding:35px 5px 5px}.result-mark{display:grid;place-items:center;background:var(--accent);width:94px;height:94px;border-radius:50%;margin:0 auto 24px;transform:rotate(-8deg)}.result-mark svg{width:52px;height:52px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.result h2{font:400 38px/1.15 Caprasimo;margin:0 0 13px}.result p{font-size:13px;color:var(--muted);line-height:1.8}.result .result-summary{display:flex;justify-content:center;gap:32px;margin:24px 0}.result-summary strong{font-size:22px;color:var(--ink);display:block}.result-summary span{font-size:11px;color:var(--muted)}.primary-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;border-radius:var(--radius);background:var(--ink);color:var(--tile);padding:12px 22px;font-weight:800}.primary-button:hover{background:#573c73}.secondary-button{display:block;width:100%;min-height:46px;border:1px solid #b6a5c6;border-radius:var(--radius);background:transparent;padding:12px 20px;margin:10px 0 0}.secondary-button:hover{background:var(--board)}.result .bonus-copy{font-size:11px;margin:8px 0 18px}.result .next-puzzle{font-size:11px;margin:22px 0 0}.result-grid{display:flex;flex-direction:column;gap:5px;align-items:center;margin:21px 0}.result-row{display:flex;gap:4px}.result-cell{width:13px;height:13px;border-radius:4px;background:var(--ink)}.result-cell.bumph{background:var(--accent);border:1px solid #8d9b49}.rollover{margin-top:20px;padding:15px;border-radius:12px;background:var(--accent);font-size:12px}dialog{width:min(460px,calc(100vw - 28px));padding:24px;border:0;border-radius:22px;background:var(--tile);color:var(--ink);box-shadow:0 24px 70px #24163835;max-height:calc(100dvh - 40px);overflow:auto;scrollbar-width:thin;scrollbar-color:#b6a5c6 var(--tile)}dialog::backdrop{background:#281d3c80;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.dialog-top h2{font:400 28px/1.15 Caprasimo;margin:0}.dialog-top .icon-button{flex-shrink:0;background:var(--paper)}#dialog-content p{font-size:13px;line-height:1.8;color:#67566f}#dialog-content strong{color:var(--ink)}.how-steps{padding-left:23px;display:grid;gap:17px}.how-steps li{padding-left:4px;font-size:13px;line-height:1.75}.how-steps li::marker{font-weight:800;color:#795297}.example-word{display:flex;gap:4px;align-items:center;justify-content:center;margin:23px 0}.example-word span{width:33px;height:37px;display:grid;place-items:center;background:var(--board);border-radius:7px;font-weight:800}.example-word .example-added{background:var(--accent)}.example-word b{margin:0 8px;color:var(--muted)}.help-note{border-top:1px solid var(--line);padding-top:14px;font-size:11px!important}.calendar-head{display:flex;justify-content:space-between;align-items:center;margin:6px 0 15px;font-weight:800}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-label{text-align:center;font-size:11px;color:var(--muted);padding:7px 0}.calendar-day{height:43px;border-radius:10px;background:var(--paper);font-size:12px;position:relative}.calendar-day:disabled{opacity:.3}.calendar-day:hover:not(:disabled){background:var(--board)}.calendar-day.today{outline:1px solid var(--ink);outline-offset:-1px}.calendar-day.completed{background:var(--ink);color:var(--tile)}.calendar-day.bonus:after{content:'';position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:var(--accent)}.calendar-key{display:flex;gap:16px;font-size:11px;color:var(--muted);margin:20px 0;align-items:center}.calendar-key span{display:flex;align-items:center;gap:5px}.key-dot{width:10px;height:10px;border-radius:3px;background:var(--ink)}.key-dot.bonus{background:var(--accent);border:1px solid #8d9b49}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:20px 0 25px;text-align:center}.stat strong{font:400 38px Caprasimo;display:block}.stat span{font-size:11px;color:var(--muted)}.storage-note{font-size:11px!important}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);padding:12px 22px;background:var(--ink);color:var(--tile);border-radius:14px;box-shadow:0 6px 25px #37234f25;font-size:12px;z-index:10;max-width:calc(100vw - 32px);text-align:center}.share-text{width:100%;height:150px;font:13px/1.6 Manrope;background:var(--paper);border:1px solid var(--line);padding:12px;border-radius:12px;color:var(--ink);resize:none}.shake{animation:shake .3s}.noscript{padding:30px;text-align:center}.storage-warning{background:var(--accent);padding:12px;border-radius:10px;font-size:11px}.archive-jump{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.archive-jump input{font:12px Manrope;background:var(--paper);border:1px solid var(--line);padding:8px;border-radius:8px;color:var(--ink);max-width:150px}.archive-jump label{font-size:11px}.skip-bonus{display:block;text-align:center;margin:12px auto 0}.bumph-button:disabled{opacity:.5}
@keyframes land{from{transform:translateY(6px);opacity:.4}to{transform:translateY(0);opacity:1}}@keyframes bob{from{transform:rotate(-9deg) translateY(0)}to{transform:rotate(5deg) translateY(-5px)}}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
@media(min-width:1400px){main{gap:80px}}@media(max-width:1100px){.site-shell{padding:0 28px}main{gap:30px;grid-template-columns:1fr minmax(340px,410px)}.desktop-note{display:none}.intro h1{font-size:37px}.intro{max-width:270px;margin:auto}}
@media(max-width:720px){.site-shell{max-width:490px;padding:0 22px}.site-header{height:91px}.brand{font-size:clamp(30px,8.2vw,40px)}.site-header nav{gap:3px}main{display:block;padding:17px 0 31px}.intro,.desktop-note{display:none}.date-row{font-size:11px}.puzzle-number{font-size:11px}.progress-track{margin:18px 7px 23px}.round-heading h2{font-size:26px}.round-heading p{font-size:12px}.answer{margin-top:21px;gap:4px}.answer-slot{height:43px;width:36px;flex-basis:36px;font-size:22px}.message{margin-top:8px;margin-bottom:4px}.wheel{width:278px;height:278px;margin-bottom:21px}.letter{width:51px;height:55px;left:calc(50% - 25.5px);top:calc(50% - 27.5px);font-size:26px;border-radius:12px}.game-meta{font-size:11px}.site-footer{font-size:11px;padding:12px 0 max(16px,env(safe-area-inset-bottom))}.site-footer .text-button{font-size:11px}.word-trail{margin-top:22px}.game-actions{gap:10px}.bumph-button{padding:0 19px;font-size:13px}.delete-button{padding:0 17px;font-size:13px}.result{padding-top:30px}.result h2{font-size:35px}dialog{padding:22px}.answer-slot{min-height:44px}.text-button{min-height:40px}.archive-trigger{font-size:11px}}
@media(max-width:350px){.site-shell{padding:0 15px}.brand{font-size:30px}.round-heading h2{font-size:24px}.wheel{width:266px;height:266px}.answer{gap:3px}.answer-slot{font-size:19px;flex-basis:29px}.letter{width:47px;height:51px;left:calc(50% - 23.5px);top:calc(50% - 25.5px)}.bumph-button{padding:0 13px}.delete-button{padding:0 13px}.progress-track{margin-left:0;margin-right:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Small companions sit beyond the playing pieces and never intercept taps. */
.decoration{pointer-events:none;user-select:none;object-fit:contain}
.brand-dot{position:relative}
.brand-berry{position:absolute;width:28px;height:28px;right:-9px;top:-18px;transform:rotate(13deg)}
.wheel-pal{position:absolute;width:61px;height:61px;right:-27px;bottom:-8px;z-index:2;transform:rotate(7deg);transform-origin:50% 85%}
.site-footer{position:relative}
.footer-dog{position:absolute;width:124px;height:62px;left:calc(50% - 62px);top:-51px}
.result-mark{position:relative}
.result-pal{position:absolute;width:63px;height:63px;right:-38px;bottom:-5px;transform:rotate(13deg)}
.bumph-cheer{animation:pal-nod .7s cubic-bezier(.2,.8,.2,1)}
@keyframes pal-nod{0%,100%{transform:rotate(7deg)}35%{transform:rotate(-7deg) translateY(-3px)}65%{transform:rotate(10deg)}}
@media(max-width:720px){.brand-berry{width:24px;height:24px;top:-13px;right:-8px}.footer-dog{width:100px;height:50px;left:calc(50% - 50px);top:-41px}.wheel-pal{width:55px;height:55px;right:-24px;bottom:-6px}}
@media(max-width:350px){.wheel-pal{width:49px;height:49px;right:-11px;bottom:-5px}.brand-berry{width:22px;height:22px;right:-6px}}
@media(prefers-reduced-motion:reduce){.bumph-cheer{animation:none}}
@media(max-width:720px){main{padding-bottom:43px}}
