@font-face{font-family:Pixelify;src:url(/fonts/pixelify-sans.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Pixelify;src:url(/fonts/vt323.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0030-0039}:root{--ink: #493721;--muted: #86714d;--parchment: #f0dfb4;--line: #d1b884;--wood: #624530;--dark: #2a261e;--pixel: Pixelify, "Courier New", monospace}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#26362d;background-image:linear-gradient(90deg,#ffffff02 1px,transparent 1px),linear-gradient(#ffffff02 1px,transparent 1px);background-size:32px 32px;font:13px/1.6 Trebuchet MS,system-ui,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #caa34d;outline-offset:3px}button{-webkit-tap-highlight-color:transparent}button:active:not(:disabled){translate:0 1px}::selection{background:#d0b16c;color:#3b3526}.pixel-icon{flex-shrink:0;vertical-align:middle;image-rendering:pixelated}.header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 34px;background:repeating-linear-gradient(0deg,transparent 0 20px,#37271e25 20px 22px),#614730;border-bottom:4px solid #2b261e;box-shadow:inset 0 3px #9e7950,inset 0 -3px #493225,0 3px #18251f55}.brand{display:flex;align-items:center;gap:0;padding:0;border:0;background:none;font:29px/1 var(--pixel);color:#f4ddb0;text-shadow:2px 3px #31291e}.brand .pixel-icon{margin-right:12px}.brand-accent{color:#b4cf6b}.account{display:flex;align-items:center;gap:23px;color:#ecd7a9;font:18px var(--pixel)}.account>span:first-child{padding:5px 11px;border:2px solid #392c21;background:#4c3828;box-shadow:inset 2px 2px #84633f}.xp{color:#e7c56a;text-shadow:1px 2px #33291f}.level-bar{width:100px;height:13px;border:2px solid #302c20;background:#393c26;box-shadow:0 1px #997647,inset 0 2px #242b20}.level-bar i{display:block;height:100%;background:#9db94f;box-shadow:inset 0 3px #c9db77,inset 0 -2px #6e8b39;transition:width .25s}main{max-width:1650px;margin:auto;padding:20px 30px 30px}.intro{display:flex;justify-content:flex-end;margin-bottom:16px}.search{display:flex;align-items:center;gap:10px;padding:8px 11px;background:#1f3028;border:2px solid #111f1a;box-shadow:inset 2px 2px #15241e,0 2px #415042;color:#a5b294}.search input{border:0;background:none;color:#d6dfbf;width:207px;font-size:12px;outline-offset:5px}.search input::placeholder{color:#91a18a}.search button{display:flex;padding:0;border:0;background:none;color:#b6c6a3}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 370px;border:5px solid #463325;outline:2px solid #1c251d;box-shadow:0 5px #15241f,inset 0 2px #b18c56;background:var(--parchment);min-height:660px}.graph{position:relative;min-width:0;min-height:660px;overflow:hidden;background-color:#263f32;background-image:linear-gradient(90deg,#9fb87e05 1px,transparent 1px),linear-gradient(#9fb87e05 1px,transparent 1px);background-size:32px 32px;box-shadow:inset 0 0 70px #11261c50}.graph:after{content:"";position:absolute;inset:0;border:3px solid #172d23;box-shadow:inset 2px 2px #455c3b;pointer-events:none}.graph-caption{position:absolute;top:19px;left:23px;z-index:1;color:#8b9f75;font:14px var(--pixel);pointer-events:none}.graph>svg{width:100%;height:100%;position:absolute;inset:0;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;min-height:660px}.graph>svg:active{cursor:grabbing}.map-scenery{opacity:.2}.map-water{fill:none;color:#517d78}.edge{fill:none;stroke:#71855b;stroke-width:3px;stroke-linejoin:miter;opacity:.65}.edge.active{stroke:#e3c16c;stroke-width:4px;opacity:1}.edge.faded{opacity:.22}.node{cursor:pointer;outline:none;transition:opacity .15s}.node>rect{fill:#485340;stroke:#18291f;stroke-width:3px}.node-shadow{fill:#14251ed0;pointer-events:none}.node .node-bevel{fill:none;stroke:#839065;stroke-width:2px;pointer-events:none}.node .item-slot{fill:#2b3a2c;stroke:#35442f;stroke-width:2px;filter:none}.node.category>rect{fill:#80603c;stroke:#3c3022}.node.category .node-bevel{stroke:#b29561}.node.category .item-slot{fill:#594a30;stroke:#6a5637}.node:hover>rect,.node:focus-visible>rect{stroke:#dcc584}.node.selected>rect{fill:#5a6244;stroke:#e1c274;stroke-width:3px}.node.selected .node-bevel{stroke:#b3b878}.node.root>rect{fill:#665333;stroke:#b59b58}.root-bevel{fill:none;stroke:#a58e51;stroke-width:3px}.root-label{font:21px var(--pixel);fill:#d7d3a6}.node.dim{opacity:.38}.node-label{font:18px var(--pixel);fill:#f0e4bc}.node.category .node-label{font-size:17px;fill:#f6dfb1}.node-pips rect{stroke-width:1px;filter:none}.node-pips .unearned{fill:#283a29;stroke:#73805a}.node-pips .earned{fill:#b4d26c;stroke:#d4e698}.node.complete>rect{fill:#52673d}.graph-bottom{position:absolute;right:20px;bottom:20px;z-index:1;display:flex;justify-content:flex-end}.graph-controls{display:flex;align-items:center;gap:3px;padding:4px;background:#4e563f;border:2px solid #17271e;box-shadow:inset 2px 2px #87916a,2px 3px #15241d80}.graph-controls button{width:30px;height:29px;background:#667052;border:1px solid #303e2c;box-shadow:inset 1px 1px #929f73,inset -1px -1px #424e37;color:#e0e5bd;display:grid;place-items:center}.graph-controls button:hover:not(:disabled){background:#7e875f}.graph-controls button:disabled{opacity:.4}.graph-controls>span{font:14px var(--pixel);color:#dce3b8;min-width:40px;text-align:center}.search-results{position:absolute;top:55px;right:18px;z-index:2;min-width:190px;max-height:290px;overflow:auto;padding:5px;border:3px solid #463622;background:#e5d2a3;box-shadow:inset 2px 2px #fff0cb,3px 4px #18281f80}.search-results button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;padding:9px;background:none;font:16px var(--pixel)}.search-results button:hover{background:#cdbb8d}.search-results>span{display:block;padding:10px;font-size:11px}.details{border-left:5px solid #61492e;padding:25px 25px 30px;background-color:var(--parchment);background-image:repeating-linear-gradient(0deg,#8e6f3503 0 2px,transparent 2px 4px);box-shadow:inset 3px 0 #c4a778,inset -3px 0 #d6bb87,inset 0 3px #fff0cb;max-height:calc(100dvh - 177px);min-height:660px;overflow:auto;scrollbar-width:thin;scrollbar-color:#a88b57 #e4cfa0}.detail-icon{display:grid;place-items:center;width:65px;height:65px;margin:10px 0 15px;border:3px solid #90764c;background:#cbb885;box-shadow:inset 3px 3px #a38d60,inset -3px -3px #f8e5b4,2px 2px #725c3530}.details h2{font:29px/1.15 var(--pixel);letter-spacing:-.2px;color:#563d23;margin:10px 0 15px}.description{font-size:12px;line-height:1.85;color:#7d6744;margin:0 0 18px}.back{display:flex;align-items:center;gap:7px;font-size:10px;color:#856a40;background:none;border:0;padding:0;margin-bottom:19px}.back:hover{color:#47351e}.connections{display:flex;flex-wrap:wrap;gap:7px}.connections button{padding:3px 7px;border:1px solid #b59a62;background:#e4cf9e;box-shadow:inset 1px 1px #fae9bf;font:13px var(--pixel);color:#80653d}.connections button:hover{background:#d8c08b}.section-label{display:flex;justify-content:space-between;margin-top:24px;padding-bottom:9px;border-bottom:2px solid #d1b986;color:#9b7e4a;font:13px var(--pixel)}.branch-list{display:grid;gap:8px;margin-top:13px}.branch-list button{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 10px;border:2px solid #b29763;background:#e8d6a9;box-shadow:inset 2px 2px #fff0ca,inset -2px -2px #cdb480}.branch-list button:hover{background:#efdfb7;border-color:#93763f}.branch-icon{display:grid;place-items:center;width:37px;height:37px;background:#c6b281;border:2px solid #ae9360;box-shadow:inset 2px 2px #9e885a,inset -1px -1px #e8d7a6}.branch-list strong{display:block;font:18px var(--pixel)}.branch-list small{display:block;font-size:9px;color:#998050;margin-top:3px}.branch-list button>span:last-child{margin-left:auto;font-family:var(--pixel);color:#9d804c}.category-progress{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#977f4e}.category-progress strong{font:19px var(--pixel);color:#718447}.skill-guide h3{font:20px var(--pixel);color:#816036;margin:25px 0 10px}.skill-guide h3:first-child{margin-top:0}.skill-guide>p{font-size:12px;line-height:1.85;color:#7e6946;margin:0}.requirements{display:grid;gap:13px}.requirement label{display:flex;align-items:flex-start;gap:9px;font-size:11px;line-height:1.8;color:#806b47}.requirement input{appearance:none;width:15px;height:15px;flex-shrink:0;margin:3px 0 0;border:2px solid #9e8554;background:#d5c08e;box-shadow:inset 1px 1px #af9565,1px 1px #fff0cb}.requirement input:checked{background:#839753;box-shadow:inset 2px 2px #afbf72,inset -2px -2px #5c723d;border-color:#6d7a41}.requirement input:checked:after{content:"";display:block;width:7px;height:4px;border-left:2px solid #f3edc3;border-bottom:2px solid #f3edc3;rotate:-45deg;margin:2px 0 0 1px}.start-path,.milestone-body>button{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:21px;padding:9px 14px;background:#819651;color:#fff1c6;border:2px solid #4f6233;box-shadow:inset 2px 2px #b5c57a,inset -2px -2px #60783c,0 3px #846b40;font:17px var(--pixel);text-shadow:1px 1px #4d6334}.start-path{width:100%}.start-path:hover,.milestone-body>button:hover:not(:disabled){background:#91a65f}.milestone{border:2px solid #bca16b;background:#e8d5a8;box-shadow:inset 2px 2px #fbebc2;margin-bottom:10px}.milestone summary{display:flex;align-items:flex-start;gap:10px;padding:13px 12px;cursor:pointer;list-style:none}.milestone summary::-webkit-details-marker{display:none}.milestone-index{display:flex;justify-content:center;align-items:center;min-width:24px;height:24px;background:#cbb582;border:1px solid #ae935f;font:14px var(--pixel);color:#8c7547}.milestone summary strong{display:block;font:17px/1.3 var(--pixel)}.milestone summary small{display:block;font:13px var(--pixel);color:#a48540;margin-top:6px}.milestone summary:after{content:"+";font:19px var(--pixel);margin-left:auto;color:#a58b56}.milestone[open] summary:after{content:"−"}.milestone-body{padding:0 14px 17px;border-top:1px solid #d5bd8c}.milestone-body>button{margin-top:16px;font-size:16px}.milestone-body>button:disabled{background:#c6cea0;color:#78874c;border-color:#a2ad72;box-shadow:inset 2px 2px #e0e6bd;text-shadow:none}.milestone.done{background:#e1d6a5;border-color:#a8ad76}.milestone.done .milestone-index{background:#9fb16b;color:#f5edc3;border-color:#7e934f}.notice{position:fixed;z-index:5;left:50%;bottom:25px;padding:15px 25px;background:#344b31;border:3px solid #d9bb68;box-shadow:inset 2px 2px #75844c,4px 5px #15251c80;color:#e6dca2;font:20px var(--pixel);transform:translate(-50%,120px);opacity:0;transition:transform .2s,opacity .2s;pointer-events:none;white-space:nowrap}.notice.visible{transform:translate(-50%);opacity:1}.storage-warning{font-size:12px;color:#e3c476}@media(min-width:1450px){.workspace{grid-template-columns:minmax(0,1fr) 390px}.workspace,.graph,.graph>svg,.details{min-height:740px}}@media(max-width:1100px)and (min-width:761px){main{padding:18px 20px 25px}.workspace{grid-template-columns:minmax(0,1fr) 330px}.details{padding:22px}}@media(max-width:760px){.header{height:69px;padding:0 15px}.brand{font-size:23px}.brand .pixel-icon{width:28px;height:28px;margin-right:7px}.account{font-size:15px;gap:12px}.account>span:first-child{padding:4px 6px}.level-bar{display:none}main{padding:17px 12px 23px}.intro{margin-bottom:14px}.search,.search input{width:100%}.workspace{display:flex;flex-direction:column;border-width:4px}.graph,.graph>svg{height:430px;min-height:430px}.graph-caption{top:15px;left:16px;font-size:12px}.graph-bottom{bottom:15px;right:15px}.graph-controls button{width:27px;height:27px}.details{min-height:0;max-height:none;border-left:0;border-top:5px solid #61492e;padding:24px}.details h2{font-size:30px}.branch-list{grid-template-columns:1fr 1fr;gap:8px}.branch-list button{gap:8px;padding:9px 6px}.branch-list strong{font-size:16px}.branch-list small{font-size:8px}.branch-icon{width:31px;height:33px;flex-shrink:0}.branch-icon svg{width:25px}.branch-list button>span:last-child{display:none}.requirement label{font-size:12px}.notice{max-width:94vw;white-space:normal;text-align:center;font-size:18px}}@media(max-width:390px){.brand{font-size:20px}.brand .pixel-icon{width:23px;margin-right:5px}.account{gap:8px;font-size:13px}.header{padding:0 11px}.details{padding:20px}.branch-list{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}.skill-modal{width:min(740px,calc(100% - 36px));max-height:calc(100dvh - 56px);padding:0;color:var(--ink);background:var(--parchment);border:5px solid #61492e;box-shadow:0 0 0 2px #241f18,6px 8px #11211880,inset 3px 3px #fff0cb;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a88b57 #e4cfa0}.skill-modal::backdrop{background:#101e18bc}.modal-heading{display:flex;align-items:center;gap:13px;padding:17px 24px;background:#d5bc87;border-bottom:3px solid #b29561;box-shadow:inset 2px 2px #f5e2b3}.modal-heading h2{font:27px/1.2 var(--pixel);margin:0}.modal-close{margin-left:auto;padding:6px;display:flex;border:2px solid #987a48;background:#e0ca98;box-shadow:inset 2px 2px #f6e5bc,inset -2px -2px #b99b65}.modal-content{padding:24px 30px 30px}.skill-modal .description{font-size:13px}.skill-modal .skill-guide>p,.skill-modal .requirement label{font-size:13px}.skill-modal .milestone summary strong{font-size:20px}.skill-modal .milestone-body{padding:0 20px 20px 46px}@media(max-width:760px){.skill-modal{width:calc(100% - 22px);max-height:calc(100dvh - 28px)}.modal-heading{padding:14px;gap:10px}.modal-heading h2{font-size:24px}.modal-content{padding:20px}.skill-modal .milestone-body{padding:0 14px 18px}}.task-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px;border-bottom:2px solid #d1b986;margin-bottom:16px}.task-heading h3{margin:0 0 10px}.task-heading>span{font:15px var(--pixel);color:#9b7e4a}.task-resources{display:flex;flex-direction:column;gap:9px;padding-top:15px}.task-description{margin:15px 0 0;font:13px/1.6 Trebuchet MS,sans-serif;color:#796541}.task-resources a{width:fit-content;color:#64783c;font-size:12px;text-underline-offset:3px}.completion-modal{width:min(620px,calc(100% - 28px))}.memory-task{margin:0 0 12px;font:20px/1.35 var(--pixel)}.memory-date{display:block;color:#927444;font-size:11px;margin-bottom:14px}.memory-preview{display:block;width:100%;max-height:400px;object-fit:contain;background:#d6c18e;border:2px solid #b79b62}.photo-empty{padding:60px 15px;text-align:center;border:2px dashed #b39a67;background:#e6d3a7;color:#957b48;font:18px var(--pixel)}.photo-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.photo-actions button,.server-error button{border:2px solid #a38a54;background:#dfcb9b;box-shadow:inset 1px 1px #fff0ca;padding:5px 10px;font:16px var(--pixel)}.photo-actions button:disabled{opacity:.5}.caption-label{display:block;margin-top:22px;font:18px var(--pixel)}.caption-label span{font:11px system-ui,sans-serif;color:#927a4b}.caption-label textarea{display:block;width:100%;margin-top:8px;resize:vertical;border:2px solid #b49a64;padding:9px;background:#f4e5bd;font:13px/1.6 Trebuchet MS,sans-serif}.memory-caption{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:20px 0 0}.photo-error{color:#9c402e;font-size:12px;margin-top:15px}.photo-status{font-size:12px;color:#8c7547}.completion-modal .start-path:disabled{opacity:.5;cursor:default}.memory-link img{width:36px;height:30px;object-fit:cover;border:1px solid #526932}.server-error{margin-bottom:15px;color:#ead7ad;font-size:12px}.server-error button{margin-left:8px;color:#584627}@media(pointer:fine){.camera-button{display:none}}.sound-toggle{display:grid;place-items:center;flex:0 0 32px;width:32px;height:30px;color:#ead6a3;background:#4c3828;border:2px solid #392c21;box-shadow:inset 1px 1px #84633f}.sound-toggle:hover{background:#684c32}.sound-toggle[aria-pressed=false]{color:#b9a58a}.celebration{position:fixed;z-index:20;top:100px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;width:max-content;max-width:calc(100vw - 36px);padding:20px 26px;border:3px solid #e3c36b;background:#344b31;color:#f8e8b7;box-shadow:inset 3px 3px #76844b,inset -3px -3px #203521,5px 6px #14251cb0;pointer-events:none;animation:reward-arrive .45s cubic-bezier(.18,.8,.3,1.3) both,reward-leave .3s 3.8s forwards}.celebration strong,.celebration span,.celebration b{display:block}.celebration strong{font:27px var(--pixel);color:#ffe296}.celebration div>span{margin-top:5px;max-width:360px;font:16px/1.3 var(--pixel)}.celebration b{margin-top:9px;font:20px var(--pixel);color:#c5df8e}.celebration .reward-star{font:58px var(--pixel);color:#ffe296;animation:reward-star .7s ease-out}.skill-reward{border-color:#ffdc75;background:#51412c}.reward-particles{position:absolute;left:50%;top:50%}.reward-particles i{position:absolute;width:7px;height:7px;background:#f7d675;opacity:0;animation:reward-particle .95s var(--delay) ease-out both}.reward-particles i:nth-child(3n){background:#abc979;width:5px;height:5px}.reward-particles i:nth-child(3n+1){background:#e9a968}@keyframes reward-arrive{0%{opacity:0;transform:translate(-50%,-25px) scale(.85)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes reward-leave{to{opacity:0;transform:translate(-50%,-12px)}}@keyframes reward-star{0%{transform:scale(.4) rotate(-35deg)}to{transform:scale(1) rotate(0)}}@keyframes reward-particle{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(150deg)}}@media(prefers-reduced-motion:reduce){.celebration,.celebration .reward-star{animation:none}.reward-particles{display:none}}@media(max-width:760px){.celebration{top:80px;gap:10px;padding:16px}.celebration strong{font-size:23px}.celebration .reward-star{font-size:40px}}.world-paths{fill:none;stroke:#b3a36c;stroke-width:3px;stroke-dasharray:4 12;opacity:.4}.region-island{cursor:pointer;outline:none}.island-shadow{fill:#11271cb0}.island-ground{fill:#3c583b;stroke:#1c3324;stroke-width:4px}.island-rim{fill:none;stroke:#748653;stroke-width:3px}.region-1 .island-ground{fill:#4e4d46}.region-1 .island-rim{stroke:#91836a}.region-2 .island-ground{fill:#315743}.region-2 .island-rim{stroke:#648b60}.region-3 .island-ground{fill:#58503b}.region-3 .island-rim{stroke:#9d8b5c}.region-4 .island-ground{fill:#494b55}.region-4 .island-rim{stroke:#8a819b}.region-island:hover .island-ground,.region-island:focus-visible .island-ground{stroke:#e9cd7f}.island-name{font:24px var(--pixel);fill:#f0e3b7}.island-count{font:17px var(--pixel);fill:#bfcca0}.island-progress-track{fill:#243b29;stroke:#809264;stroke-width:1px}.island-progress-fill{fill:#b8cc76}.region-summary{font:17px var(--pixel);color:#8b7447;margin-top:22px}.world-paths{opacity:1}.world-paths path{opacity:.3}.world-paths path.active{opacity:.95;stroke:#d8c17b;stroke-width:4px}.quiet-island{opacity:.55}.expanded-island .island-ground{stroke:#d4bd75}.region-branch,.skill-branch{fill:none;stroke:#8c9d69;stroke-width:3px}.region-branch.active,.skill-branch.active{stroke:#e3c16c;stroke-width:4px}.cluster-island{cursor:pointer;outline:none}.cluster-shadow{fill:#13271cd0}.cluster-ground{fill:#47583b;stroke:#83945e;stroke-width:3px}.cluster-island.open .cluster-ground{fill:#5a6040;stroke:#cfb977}.cluster-island:hover .cluster-ground,.cluster-island:focus-visible .cluster-ground{stroke:#f1d58b}.cluster-count{font:17px var(--pixel);fill:#c0cc98}.region-scene .node.skill{animation:branch-reveal .3s ease-out both}@keyframes branch-reveal{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.region-scene .node.skill{animation:none}}.intro{gap:12px}.random-button,.roll-again,.random-slot>button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:8px 13px;border:2px solid #39472b;background:#83964e;color:#fff0c7;box-shadow:inset 2px 2px #b2c579,inset -2px -2px #607637,0 2px #17271e;font:18px var(--pixel)}.random-button:disabled,.roll-again:disabled,.random-slot>button:disabled{opacity:.55}.random-modal{width:min(900px,calc(100% - 36px))}.random-modal .modal-content{background:repeating-linear-gradient(0deg,transparent 0 30px,#442e1710 30px 32px),#dac08b}.random-modal .modal-heading{background:#5d432d;color:#f2dca9;border-bottom-color:#32291e;box-shadow:inset 0 3px #967047}.random-sound{margin-left:auto;flex-shrink:0}.random-modal .modal-close{margin-left:0;color:#493721}.roll-status{margin:0 0 20px;text-align:center;font:24px var(--pixel)}.random-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.random-slot{position:relative;min-width:0;padding:16px 10px;border:4px solid #63462b;background:#a6824d;box-shadow:inset 3px 3px #d6b775,inset -3px -3px #7d5c36,3px 5px #6b4c2d;text-align:center}.random-slot h3{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;color:#fff0c6;text-shadow:1px 2px #5e4229;font:22px var(--pixel)}.roll-window{--reel-height: 108px;--reel-offset: 58px;position:relative;height:230px;margin:16px 0;overflow:hidden;background:#20392c;color:#ecdfad;border:3px solid #302c20;box-shadow:0 2px #d9b66b,inset 0 4px #0d2119;isolation:isolate}.roll-window:before{content:"";position:absolute;z-index:3;top:var(--reel-offset);left:0;right:0;height:var(--reel-height);border-top:3px solid #eac46e;border-bottom:3px solid #eac46e;background:#dfc36a10;pointer-events:none}.roll-window:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(#0e201de8,transparent 32%,transparent 68%,#0e201de8);pointer-events:none}.reel-pointer{position:absolute;z-index:4;top:calc(50% - 20px);left:-2px;color:#ffe3a1;font:32px var(--pixel);text-shadow:2px 2px #503d23}.roll-entry{height:var(--reel-height);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:8px 13px;border-bottom:1px solid #9db07820}.roll-entry strong{font:21px/1.12 var(--pixel);overflow-wrap:anywhere}.roll-reel{animation:quest-reel var(--roll-duration) linear both}@keyframes quest-reel{0%{transform:translateY(var(--reel-offset))}15%{transform:translateY(calc(var(--reel-offset) - 5 * var(--reel-height)))}40%{transform:translateY(calc(var(--reel-offset) - 11 * var(--reel-height)))}65%{transform:translateY(calc(var(--reel-offset) - 15 * var(--reel-height)))}82%{transform:translateY(calc(var(--reel-offset) - 17 * var(--reel-height)))}96%{transform:translateY(calc(var(--reel-offset) - 18.06 * var(--reel-height)))}to{transform:translateY(calc(var(--reel-offset) - 18 * var(--reel-height)))}}.roll-winner{height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#d9ba6a30,transparent 72%)}.roll-winner>.roll-entry{width:100%;border:0;animation:quest-item-land .5s ease-out both}.landed{border-color:#dcb665;animation:quest-land .4s ease-out both}.landed .roll-window:before{border-color:#ffe6a1}@keyframes quest-land{0%{transform:translateY(0)}25%{transform:translateY(7px)}60%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes quest-item-land{0%{transform:scale(.72);opacity:.5}45%{transform:scale(1.13);opacity:1}to{transform:scale(1)}}.landing-sparks{position:absolute;z-index:4;top:50%;left:50%;pointer-events:none}.landing-sparks i{position:absolute;width:5px;height:5px;background:#ffe39a;box-shadow:2px 2px #c99447;animation:quest-spark .7s ease-out both;transform-origin:center}@keyframes quest-spark{0%{transform:rotate(var(--spark-angle)) translate(15px);opacity:1}to{transform:rotate(var(--spark-angle)) translate(98px);opacity:0}}.roll-again{display:flex;margin:26px auto 0;min-width:168px;padding:12px 20px;font-size:22px}@media(max-width:580px){.intro{flex-wrap:wrap}.random-button{margin-right:auto}.random-modal .modal-content{padding:18px 14px}.random-modal .modal-heading{gap:8px}.random-modal .modal-heading h2{font-size:22px}.random-slots{grid-template-columns:1fr;gap:14px}.random-slot{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;text-align:left;padding:10px}.random-slot h3{justify-content:flex-start;font-size:19px}.roll-window{grid-column:1 / -1;grid-row:2;--reel-height: 64px;--reel-offset: 26px;height:122px;margin:0}.roll-entry{flex-direction:row;justify-content:flex-start;padding:8px 18px}.roll-window .pixel-icon{width:34px;height:34px}.roll-window strong{font-size:20px}.random-slot>button{grid-column:2;grid-row:1;padding:8px;font-size:16px}}@media(prefers-reduced-motion:reduce){.landed,.roll-winner>.roll-entry,.landing-sparks i{animation:none}.landing-sparks{display:none}}.node.skill.locked-stage rect:not(.earned):not(.unearned){fill:#3e4842;stroke:#667269}.node.skill.locked-stage .node-bevel{stroke:#7a8475}.node.skill.locked-stage .pixel-icon{opacity:.65}.node.skill.locked-stage text{fill:#adb5a3}.node.skill.locked-stage.selected>rect{stroke:#dfc680}.skill-branch.stage-link{stroke:#b3bd7c;stroke-width:4px}.skill-branch.locked-link{stroke:#7a8876;stroke-dasharray:7 8;opacity:.65}.stage-check{font:bold 18px var(--pixel);fill:#d2e495}.stage-summary{font:19px var(--pixel);color:#7c633c;margin:16px 0}.stage-prerequisite{display:block;border:0;background:none;padding:0;text-align:left;color:#78623f;text-decoration:underline;font-size:12px}.stage-navigation{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:24px}.stage-navigation button{padding:7px 10px;border:2px solid #b69a62;background:#e3cd9c;box-shadow:inset 1px 1px #fff0ca;font:17px var(--pixel)}.stage-navigation button:disabled{opacity:.4}.stage-navigation span{white-space:nowrap;font:18px var(--pixel);color:#8b713f}.stage-lock-message{margin:0 0 24px;padding:12px;background:#d9c694;border:2px solid #b19b6b}.continue-stage{display:block;width:100%;padding:12px;margin-top:24px;border:2px solid #536638;background:#8b9f57;color:#fff1c8;font:20px var(--pixel);box-shadow:inset 2px 2px #bacb80,inset -2px -2px #6e833f}@media(max-width:580px){.stage-navigation{gap:6px}.stage-navigation button{font-size:15px;padding:7px 6px}}.auth-button{padding:7px 12px;border:2px solid #392c21;background:#7f9250;color:#f4e4bb;box-shadow:inset 1px 1px #b4c27c;font:18px var(--pixel)}.account-modal{width:min(490px,calc(100% - 28px))}.account-email{overflow-wrap:anywhere;margin-top:0}.account-actions{display:flex;flex-direction:column;gap:15px}.account-actions button{text-align:left;padding:10px 13px;border:2px solid #aa8d54;background:#e2cc99;box-shadow:inset 1px 1px #fff0c8;font:19px var(--pixel)}.account-actions .delete-account{color:#934f3b}.account-privacy,.privacy-link{font-size:12px}.account-privacy{color:#856c45}.privacy-link{text-align:right;margin-bottom:0}.privacy-link a{color:#b6c29a}.delete-confirmation label{display:block;margin-bottom:12px}.delete-confirmation input{display:block;width:100%;margin-top:8px;padding:8px;border:2px solid #b49864;background:#fff2cf}.delete-confirmation button{margin:0 10px 10px 0}@media(max-width:580px){.account{gap:8px}.auth-button{padding:6px 8px;font-size:16px}.account>span:first-of-type{font-size:15px}}
