@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap";:root{color:#10203d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#f6f0e3;--paper-raised:#fbf7ef;--ink:#10203d;--muted:#657085;--green:#1f6a4b;--green-deep:#17543c;--green-soft:#dce8df;--amber:#c9791d;--clay:#9f4c38;--clay-soft:#9f4c381c;--line:#10203d29;--line-strong:#10203d47;--shadow:0 1px 1px #221f1814, 0 8px 24px #221f1814;background:#f6f0e3;font-family:DM Sans,sans-serif}*{box-sizing:border-box}html{min-width:320px}body{background-color:var(--paper);background-image:radial-gradient(#40301609 .7px,#0000 .7px);background-size:5px 5px;min-width:320px;min-height:100svh;margin:0}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #1f6a4b47}button:disabled{opacity:.42;cursor:not-allowed}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.site-header{border-bottom:1px solid var(--line);background:#f6f0e3e6;align-items:center;gap:32px;height:88px;padding:0 40px;display:flex}.brand{color:var(--ink);letter-spacing:-.04em;font-family:Libre Caslon Display,Georgia,serif;font-size:clamp(30px,3vw,46px);text-decoration:none}.daily{align-items:center;gap:10px;font-size:16px;display:flex}.daily span{font-size:22px}.header-spacer{flex:1}.text-button{cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;min-height:44px;font-weight:600;display:flex}.text-button>:first-child,.text-button:first-letter{border:1px solid var(--ink);border-radius:50%}.game-shell{grid-template-columns:minmax(0,1fr);max-width:1320px;min-height:calc(100vh - 88px);margin:0 auto;display:grid}.game-status{min-height:calc(100vh - 88px);color:var(--muted);text-align:center;place-items:center;padding:32px;display:grid}.puzzle-status-card{justify-items:center;width:min(100%,430px);display:grid}.puzzle-status-card h1{color:var(--ink);letter-spacing:-.025em;margin:22px 0 10px;font-family:Libre Caslon Display,Georgia,serif;font-size:clamp(34px,6vw,52px);font-weight:400;line-height:1.05}.puzzle-status-card p{max-width:350px;margin:0;font-size:15px;line-height:1.65}.puzzle-status-pebbles{width:104px;height:70px;position:relative}.puzzle-status-pebbles i{box-shadow:var(--shadow);background:#ece7dd;border:1px solid #4941304d;display:block;position:absolute}.puzzle-status-pebbles i:first-child{border-radius:48% 52% 44% 56%/58% 48% 52% 42%;width:76px;height:31px;bottom:0;left:12px;transform:rotate(-3deg)}.puzzle-status-pebbles i:nth-child(2){border-radius:55% 45% 52% 48%/43% 57% 46% 54%;width:60px;height:27px;bottom:24px;left:30px;transform:rotate(4deg)}.puzzle-status-pebbles i:nth-child(3){border-radius:43% 57% 47% 53%/54% 44% 56% 46%;width:43px;height:22px;bottom:45px;left:18px;transform:rotate(-6deg)}.puzzle-status-retry{border-radius:6px;min-width:140px;margin-top:24px}.play-area{flex-direction:column;min-width:0;padding:64px clamp(28px,5vw,76px) 40px;display:flex}.challenge-heading{grid-template-columns:1fr minmax(180px,1fr) 1fr;align-items:end;display:grid}.endpoint{gap:12px;min-width:0;display:grid;container-type:inline-size}.endpoint>.endpoint__label{color:var(--green-deep);text-transform:uppercase;letter-spacing:.1em;font-size:13px;font-weight:700}.endpoint>strong{min-width:0;max-width:100%;font-family:Libre Caslon Display,Georgia,serif;font-size:clamp(10px, calc(160cqi / var(--endpoint-chars)), 106px);white-space:nowrap;text-transform:uppercase;letter-spacing:-.035em;font-weight:400;line-height:.92}.endpoint__sense{max-width:32ch;color:var(--muted);text-wrap:balance;font-size:13px;line-height:1.4}.endpoint--right{text-align:right}.endpoint--right .endpoint__sense{justify-self:end}.distance{color:var(--muted);white-space:nowrap;align-items:center;gap:12px;padding-bottom:11px;font-size:13px;display:flex}.distance i{border-top:1px dashed var(--line-strong);width:100%}.budget-banner{justify-content:flex-end;align-items:center;margin-top:56px;padding:16px 20px;display:flex}.budget-banner span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.pebble-reserve{align-items:center;gap:12px;display:flex}.pebble-reserve__pile{flex:none;width:150px;height:68px;position:relative}.pebble-reserve__pebble{width:var(--pebble-w);height:var(--pebble-h);left:var(--pebble-x);top:var(--pebble-y);z-index:1;transform:rotate(var(--pebble-rotation));transform-origin:bottom;background:#ece7dd;border:1px solid #4941304d;border-radius:48% 52% 44% 56%/58% 48% 52% 42%;transition:opacity .16s ease-out,filter .16s ease-out,transform .16s cubic-bezier(.23,1,.32,1);position:absolute;box-shadow:inset 0 1px #ffffffb8,0 2px 3px #221f1829}.pebble-reserve__pebble:nth-child(3n){border-radius:55% 45% 52% 48%/43% 57% 46% 54%}.pebble-reserve__pebble:nth-child(4n){border-radius:43% 57% 47% 53%/54% 44% 56% 46%}.pebble-reserve__pebble:nth-child(5n){border-radius:50% 50% 58% 42%/45% 56% 44% 55%}.pebble-reserve__pebble--spent{opacity:.14;filter:grayscale();box-shadow:none;transform:translateY(3px) rotate(var(--pebble-rotation)) scale(.78)}.pebble-reserve__label{min-width:62px;display:grid}.pebble-reserve__label strong{font-variant-numeric:tabular-nums;font-family:Libre Caslon Display,Georgia,serif;font-size:32px;font-weight:400;line-height:.9}.pebble-reserve__label span{text-transform:none;letter-spacing:0;white-space:nowrap;margin-top:5px}.branch-map{margin-top:24px}.word-tree-scroll{border:1px solid var(--line);scrollbar-width:thin;background:0 0;border-radius:8px;max-height:500px;padding:32px 24px 190px;overflow:auto;container-type:inline-size}.word-tree{justify-content:center;width:max-content;min-width:100%;padding-inline:max(24px,50cqw - 65px);display:flex}.word-tree ul{justify-content:center;margin:0;padding:52px 0 0;display:flex;position:relative}.word-tree>ul{padding-top:0}.word-tree li{flex-direction:column;align-items:center;padding:52px 14px 0;list-style:none;display:flex;position:relative}.word-tree>ul>li{padding-top:0}.word-tree li:before,.word-tree li:after{content:"";border-top:1px solid var(--green);width:50%;height:52px;position:absolute;top:0;right:50%}.word-tree li:after{border-left:1px solid var(--green);left:50%;right:auto}.word-tree li:only-child:before,.word-tree li:only-child:after{display:none}.word-tree li:only-child{padding-top:0}.word-tree li:first-child:before,.word-tree li:last-child:after{border:0}.word-tree li:last-child:before{border-right:1px solid var(--green)}.word-tree ul ul:before{content:"";border-left:1px solid var(--green);width:0;height:52px;position:absolute;top:0;left:50%}.word-tree li:after,.word-tree li:last-child:before,.word-tree ul ul:before,.meaning-switch-transition:after{-webkit-mask-image:linear-gradient(#000 0 17px,#0000 17px 35px,#000 35px 100%);mask-image:linear-gradient(#000 0 17px,#0000 17px 35px,#000 35px 100%)}.tree-relationship{z-index:3;width:32px;height:32px;color:var(--green-deep);text-align:center;cursor:help;background:0 0;outline:none;place-content:center;justify-items:center;gap:0;padding:0;line-height:1;display:grid;position:absolute;top:10px;left:50%;transform:translate(-50%)}.tree-relationship:before{content:none}.tree-relationship:after{content:attr(data-tooltip);z-index:4;width:max-content;max-width:150px;color:var(--paper);background:var(--ink);box-shadow:var(--shadow);letter-spacing:.01em;text-transform:none;opacity:0;pointer-events:none;border-radius:3px;padding:5px 7px;font-size:10px;font-weight:600;line-height:1.2;transition:opacity .14s ease-out,transform .14s cubic-bezier(.23,1,.32,1);position:absolute;top:50%;left:calc(100% + 7px);transform:translate(3px,-50%)}.tree-relationship:hover:after,.tree-relationship:focus-visible:after{opacity:1;transform:translateY(-50%)}.tree-relationship:focus-visible{filter:drop-shadow(0 0 2px #1d604773)}.tree-relationship>*{z-index:1;position:relative}.word-tree li:only-child>.tree-relationship{top:-42px}.tree-relationship__symbols{justify-content:center;align-items:center;gap:1px;font-family:Georgia,serif;font-size:18px;font-weight:700;display:flex}.tree-relationship__symbols span{display:block}.tree-relationship--meaning-change{color:var(--amber)}.tree-relationship--meaning-change .tree-relationship__symbols{font-size:22px}.meaning-switch-transition{z-index:2;flex-direction:column;align-items:center;margin-bottom:52px;display:flex;position:relative}.meaning-switch-transition:after{content:"";z-index:0;border-left:1px solid var(--green);height:52px;position:absolute;top:100%;left:50%}.meaning-switch-pebble{width:var(--switch-pebble-size,112px);z-index:2;min-height:96px;color:var(--ink);text-align:center;background:#e9c873;border:1px solid #8e5b136b;border-radius:52% 48% 45% 55%/47% 55% 45% 53%;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:13px 11px 14px;display:flex;position:relative;transform:rotate(1deg);box-shadow:inset 0 1px #ffffff7a,0 5px 14px #67441329}.meaning-switch-pebble__label{color:#76500e;letter-spacing:.12em;text-transform:uppercase;font-size:8px;font-weight:700;line-height:1}.meaning-switch-pebble__word{max-width:100%;font-family:Libre Caslon Display,Georgia,serif;font-size:var(--switch-word-size,16px);white-space:nowrap;text-transform:uppercase;line-height:1.05}.meaning-switch-pebble__sense{color:#624c2d;overflow-wrap:anywhere;text-wrap:balance;max-width:100%;font-size:9px;line-height:1.25}.meaning-switch-transition>.tree-relationship--after-switch{top:calc(100% + 10px)}.word-pebble{--pebble-rest-rotation:0deg;width:var(--pebble-size,110px);min-height:var(--pebble-size,110px);z-index:2;color:var(--ink);text-align:center;box-shadow:inset 0 1px 0 #ffffffb3, var(--shadow);cursor:pointer;isolation:isolate;background:#ece7dd;border:1px solid #4941303b;border-radius:47% 53% 46% 54%/55% 47% 53% 45%;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:17px 13px;transition:transform .15s cubic-bezier(.23,1,.32,1),box-shadow .15s ease-out;display:flex;position:relative}.word-pebble:hover{transform:translateY(-2px)}.word-pebble--open-end{box-shadow:inset 0 1px 0 #ffffffb3, 0 0 0 2px var(--paper), 0 0 0 3px #1f6a4b59, var(--shadow)}.word-pebble--open-end:after{content:"+";width:18px;height:18px;color:var(--paper);background:var(--green);border-radius:50%;place-items:center;font-family:DM Sans,sans-serif;font-size:14px;font-weight:700;line-height:1;display:grid;position:absolute;top:5px;right:8px;box-shadow:0 2px 5px #17543c3d}.word-pebble--selected{box-shadow:0 0 0 3px var(--paper), 0 0 0 5px var(--green), var(--shadow)}.word-pebble--newest{animation:.28s cubic-bezier(.23,1,.32,1) pebble-settle}.word-tree__node--newest>.tree-relationship{animation:.22s ease-out 70ms both trail-marker-in}.word-tree li:nth-child(2n)>.word-pebble{--pebble-rest-rotation:-1deg;transform:rotate(var(--pebble-rest-rotation));border-radius:54% 46% 52% 48%/46% 56% 44% 54%}.word-tree li:nth-child(2n)>.word-pebble:hover{transform:rotate(-1deg)translateY(-2px)}.word-pebble__word{max-width:100%;font-family:Libre Caslon Display,Georgia,serif;font-size:var(--pebble-word-size,19px);white-space:nowrap;text-transform:uppercase;line-height:1.05}.word-pebble__sense{max-width:100%;color:var(--muted);overflow-wrap:anywhere;text-wrap:balance;font-size:10px;line-height:1.3}.word-pebble__sense--abbreviated{cursor:help;text-underline-offset:3px;-webkit-text-decoration:underline dotted #65708599;text-decoration:underline dotted #65708599;text-decoration-thickness:1px}.definition-tooltip{z-index:2147483647;width:min(280px,100vw - 24px);color:var(--paper);background:var(--ink);text-align:left;pointer-events:none;border-radius:6px;padding:10px 12px;font-size:12px;font-weight:500;line-height:1.45;animation:.12s ease-out fade-in;position:fixed;transform:translate(-50%);box-shadow:0 10px 30px #0b132047}.definition-tooltip:before{content:"";background:var(--ink);width:10px;height:10px;position:absolute;left:50%;transform:translate(-50%)rotate(45deg)}.definition-tooltip--below:before{top:-5px}.definition-tooltip--above{transform:translate(-50%,-100%)}.definition-tooltip--above:before{bottom:-5px}.word-form{gap:14px;width:min(640px,100%);margin:32px auto 0;display:grid}.input-row{grid-template-columns:1fr auto;display:grid}.input-row input{min-width:0;height:58px;color:var(--ink);border:1px solid var(--green);background:#ffffff7a;border-right:0;border-radius:6px 0 0 6px;padding:0 20px;font-size:17px;transition:border-color .15s ease-out,background-color .15s ease-out,box-shadow .15s ease-out;box-shadow:inset 0 0 #0000}.input-row input::placeholder{color:#8e948f}.word-form--typing .input-row input{box-shadow:inset 3px 0 0 var(--amber);background:#ffffff9e}.word-form--valid .input-row input{border-color:var(--green-deep);box-shadow:inset 3px 0 0 var(--green);background:#dce8df8c}.word-form--invalid .input-row input{border-color:var(--clay);background:var(--clay-soft);box-shadow:inset 3px 0 0 var(--clay)}.word-form--invalid .input-row[data-error-cycle=odd]{animation:.24s cubic-bezier(.23,1,.32,1) input-shake-a}.word-form--invalid .input-row[data-error-cycle=even]{animation:.24s cubic-bezier(.23,1,.32,1) input-shake-b}.primary-button{letter-spacing:.04em;cursor:pointer;border:1px solid var(--green);color:#fff;background:var(--green);border-radius:6px;min-height:48px;padding:0 22px;font-size:13px;font-weight:700;transition:transform .14s cubic-bezier(.23,1,.32,1),background-color .14s ease-out}.input-row .primary-button{border-radius:0 6px 6px 0}.primary-button:hover:not(:disabled){background:var(--green-deep)}.primary-button:active:not(:disabled){transform:scale(.97)}.game-message{min-height:22px;color:var(--muted);text-align:center;justify-content:center;align-items:baseline;gap:7px;margin:0;font-size:13px;transition:color .15s ease-out;display:flex}.game-message>span{min-width:14px;color:var(--muted);font-weight:700}.game-message--success{color:var(--green-deep)}.game-message--success>span{color:var(--green)}.game-message--invalid,.game-message--error,.game-message--invalid>span,.game-message--error>span{color:var(--clay)}.dialog-backdrop{z-index:10;background:#10203d70;place-items:center;padding:24px;animation:.18s ease-out fade-in;display:grid;position:fixed;inset:0}.dialog{background:var(--paper-raised);border-radius:10px;width:min(520px,100%);max-height:calc(100vh - 48px);padding:42px;animation:.22s cubic-bezier(.23,1,.32,1) rise-in;position:relative;overflow:auto;box-shadow:0 24px 80px #0b132040}.dialog--help{width:min(720px,100%)}.dialog h2{margin:0 0 14px;font-family:Libre Caslon Display,Georgia,serif;font-size:38px;font-weight:400}.dialog>p{color:var(--muted);line-height:1.6}.dialog-close{cursor:pointer;background:0 0;border:0;width:44px;height:44px;font-size:28px;position:absolute;top:16px;right:16px}.challenge-instructions{border:1px solid var(--line);background:#fff3;margin-top:24px;padding:20px}.challenge-instructions h3{color:var(--green-deep);letter-spacing:.08em;text-transform:uppercase;margin:0 0 9px;font-size:12px}.challenge-instructions ul{color:var(--muted);margin:0;padding-left:18px;font-size:12px;line-height:1.7}.relationship-heading{color:var(--green-deep);letter-spacing:.08em;text-transform:uppercase;margin:26px 0 10px;font-size:12px}.relationship-intro{margin-bottom:24px;font-size:13px}.relationship-group+.relationship-group{margin-top:28px}.relationship-group h4{color:var(--ink);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:16px;margin:0 0 8px;font-size:13px;display:flex}.relationship-group h4 span{min-width:24px;color:var(--green-deep);text-align:center;background:#1f6a4b1a;border-radius:999px;padding:3px 7px;font-size:11px;line-height:1.4}.relationship-list{border-top:1px solid var(--line);gap:0;display:grid}.relationship-list div{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,.7fr) 1.3fr;gap:20px;padding:14px 0;font-size:13px;display:grid}.relationship-list strong{color:var(--green-deep);align-items:center;gap:8px;display:flex}.relationship-list__symbol{background:#dce8df5c;border:1px solid #1f6a4b4d;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-family:Georgia,serif;font-size:17px;line-height:1;display:grid}.relationship-list div>span{gap:5px;display:grid}.relationship-list em{color:var(--muted);font-size:11px;font-style:normal}.meaning-note{background:#ffffff38;border:1px solid #6b522533;align-items:center;gap:12px;margin-top:20px;padding:14px 16px;display:flex}.meaning-note>span{color:var(--green);font-size:24px}.meaning-note p{margin:0;font-size:12px;line-height:1.55}.completion{text-align:center}.completion-mark{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:54px;height:54px;margin:0 auto 22px;font-size:27px;display:grid}.completion>p{color:var(--ink);text-transform:uppercase;font-family:Libre Caslon Display,Georgia,serif;font-size:20px}.completion-stats{border-block:1px solid var(--line);grid-template-columns:1fr 1fr;margin:28px 0;display:grid}.completion-stats div{padding:20px;display:grid}.completion-stats div+div{border-left:1px solid var(--line)}.completion-stats strong{font-family:Libre Caslon Display,Georgia,serif;font-size:34px;font-weight:400}.completion-stats span{color:var(--muted);font-size:12px}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes pebble-settle{0%{opacity:0;transform:translateY(-12px) scale(.95) rotate(var(--pebble-rest-rotation))}68%{opacity:1;transform:translateY(2px) scale(1.01) rotate(var(--pebble-rest-rotation))}to{opacity:1;transform:translateY(0) scale(1) rotate(var(--pebble-rest-rotation))}}@keyframes trail-marker-in{0%{opacity:0;transform:translate(-50%,-5px)}to{opacity:1;transform:translate(-50%)}}@keyframes input-shake-a{0%,to{transform:translate(0)}30%{transform:translate(-5px)}60%{transform:translate(4px)}80%{transform:translate(-2px)}}@keyframes input-shake-b{0%,to{transform:translate(0)}30%{transform:translate(-5px)}60%{transform:translate(4px)}80%{transform:translate(-2px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=680px){.site-header{gap:16px;height:72px;padding:0 18px}.brand{font-size:29px}.daily{font-size:12px}.daily span,.text-button span{display:none}.text-button{justify-content:center;width:44px;font-size:17px}.play-area{padding:40px 18px 30px}.challenge-heading{grid-template-columns:1fr 1fr}.endpoint>strong{font-size:clamp(10px, calc(160cqi / var(--endpoint-chars)), 78px)}.distance{grid-area:2/1/auto/-1;padding:24px 0 0}.budget-banner{margin-top:40px;padding-inline:0}.pebble-reserve{gap:7px}.pebble-reserve__pile{width:102px;height:50px}.pebble-reserve__label{min-width:52px}.pebble-reserve__label strong{font-size:28px}.pebble-reserve__label span{font-size:9px}.branch-map{margin-top:20px}.word-tree-scroll{padding-inline:18px;margin-inline:-18px;padding-bottom:190px}.input-row{grid-template-columns:1fr;gap:10px}.input-row input{border-right:1px solid var(--green);border-radius:6px}.input-row .primary-button{border-radius:6px}.dialog{padding:36px 24px}.relationship-list div{grid-template-columns:1fr;gap:5px}}@media (width<=480px){.site-header{height:64px;padding-left:max(16px, env(safe-area-inset-left));padding-right:max(16px, env(safe-area-inset-right));gap:12px}.brand{font-size:27px}.daily{font-size:11px}.game-shell{min-height:calc(100svh - 64px)}.play-area{padding:32px max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.endpoint{gap:8px}.endpoint>.endpoint__label{font-size:11px}.endpoint>strong{font-size:clamp(10px, calc(160cqi / var(--endpoint-chars)), 70px)}.endpoint__sense{font-size:11px;line-height:1.35}.distance{gap:8px;padding-top:20px;font-size:11px}.budget-banner{margin-top:32px}.pebble-reserve__pile{width:96px;height:47px}.pebble-reserve__label{min-width:48px}.word-tree-scroll{overscroll-behavior:contain;max-height:min(460px,52svh);margin-inline:-16px;padding:28px 16px 190px}.word-pebble{padding:15px 12px}.word-form{gap:12px;margin-top:24px}.input-row input{height:54px;padding-inline:16px;font-size:16px}.input-row .primary-button{min-height:54px}.dialog-backdrop{padding:12px;padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom))}.dialog{max-height:calc(100dvh - 24px);padding:32px 20px}.dialog h2{font-size:34px}.challenge-instructions{padding:16px}}
