@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--paper:#f6f5ed;--ink:#254c3d;--muted:#7b8877;--line:#dfe4d7;--green:#2f5a44;--cream:#fffdf6;--sage:#eaf0e1;--gold:#b79451;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased;background-image:radial-gradient(ellipse at 95% 10%,#e9eddb55,transparent 50%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #b99a51;outline-offset:4px}button{transition:background .2s,transform .2s,box-shadow .2s}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}.page-shell{max-width:1480px;padding:0 52px;margin:0 auto}.site-header{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;gap:11px;align-items:center;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:30px;letter-spacing:-1px;line-height:1}.brand-dot{color:#ae8d4d}.brand-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:var(--ink);color:#eedca3}.brand-icon svg{width:26px;height:26px;stroke:currentColor;stroke-width:1;fill:none}.header-tagline{font-size:10px;font-weight:600;letter-spacing:2.1px;margin-left:20px;color:#7a8878}.header-actions{display:flex;align-items:center;gap:20px}.text-button{display:flex;align-items:center;gap:8px;padding:8px 0;background:none;border:0;font-size:12px;font-weight:550}.text-button:hover{color:#a17e3d}.icon-button{border:1px solid var(--line);border-radius:50%;width:36px;height:36px;display:grid;place-items:center;background:transparent}.icon-button:hover{background:#e9eddf}.icon-button .icon{width:17px;height:17px}.intro{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:42px 0 32px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.8px;line-height:1.4}.tiny-star{color:#ac8d4b;font-size:13px;margin-right:6px}h1{font-family:var(--serif);font-size:clamp(36px,3.8vw,53px);font-weight:400;line-height:1.15;letter-spacing:-1.4px;margin:10px 0 12px}h1 em{color:#7d905f;font-weight:400}.intro p{color:#7a8575;font-size:13px;margin:0;line-height:1.8}.session-stats{display:flex;gap:28px;align-items:center;flex-shrink:0;padding-top:27px}.stat{min-width:85px}.stat-label{display:block;font-size:9px;letter-spacing:1.3px;font-weight:600;color:#7b8877;margin-bottom:9px}.stat-value{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:29px;line-height:1.1;font-variant-numeric:tabular-nums}.stat-value .icon{color:#b79956;width:22px;height:22px;stroke-width:1.4}.stat-divider{height:40px;width:1px;background:var(--line)}.best-caption{position:absolute;font-size:8px;margin-top:5px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:25px;align-items:start}.forest-card{border:1px solid #dce2d3;border-radius:18px;background:var(--cream);overflow:hidden;box-shadow:0 5px 18px #254c3d05}.forest-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px}.forest-heading{display:flex;align-items:center;gap:10px}.forest-leaf{display:grid;place-items:center;border-radius:50%;width:35px;height:35px;background:#eff2e6}.forest-leaf .icon{width:19px;height:19px;stroke-width:1.4}.forest-heading h2{font-size:13px;line-height:1.4;margin:0;font-weight:600}.forest-number{font-size:8px;letter-spacing:1.4px;color:#8b9585;display:block;margin-top:4px}.difficulty-group{display:flex;gap:3px;border:1px solid #e2e6dc;background:#f3f5ed;border-radius:10px;padding:3px}.difficulty-group button{border:0;background:transparent;font-size:10px;line-height:1.2;padding:8px 12px;border-radius:7px;font-weight:550;color:#7b8877;min-width:64px}.difficulty-group button span{display:none}.difficulty-group button:hover{background:#e8eedf}.difficulty-group button.selected{background:var(--green);color:#fffdf6;box-shadow:0 2px 3px #254c3d19}.scene-viewport{position:relative;overflow:auto;overscroll-behavior:contain;background:#b7c9a4;aspect-ratio:3/2;scrollbar-width:thin;scrollbar-color:#708968 #b9cba6;isolation:isolate}.scene-stage{position:relative;width:100%;height:100%;line-height:0;min-width:100%;min-height:100%}#forest-canvas,#effects-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#forest-canvas{cursor:crosshair;touch-action:pan-x pan-y}#forest-canvas:focus-visible{outline:3px solid #e6c778;outline-offset:-4px}#effects-canvas{pointer-events:none}.scene-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #213d2612}.scene-label{position:absolute;top:18px;left:18px;display:flex;gap:7px;align-items:center;font-size:9px;font-weight:550;color:#faf9e8;background:#2a4d3ece;border:1px solid #ffffff21;border-radius:30px;padding:9px 12px;pointer-events:none;backdrop-filter:blur(8px)}.status-dot{width:5px;height:5px;background:#e4d594;border-radius:50%}.zoom-controls{position:absolute;right:17px;bottom:17px;display:flex;align-items:center;background:#fffdf3ed;border:1px solid #34543422;border-radius:9px;box-shadow:0 2px 6px #233c2720;overflow:hidden}.zoom-controls button{width:32px;height:33px;border:0;background:transparent;font-size:20px;font-weight:400}.zoom-controls button:hover:not(:disabled){background:#e8eedc}.zoom-controls span{font-size:9px;min-width:35px;text-align:center;color:#65765c;font-variant-numeric:tabular-nums}.forest-footer{min-height:52px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:#7f8b78}.forest-footer>span:first-child{display:flex;align-items:center;gap:8px}.forest-footer .icon{width:14px;height:14px;color:#82926f}.forest-seed{font-size:8px;letter-spacing:.8px;flex-shrink:0;color:#99a38e}.quest-card{text-align:center;background:#ebefdf;border:1px solid #e0e5d4;border-radius:18px;padding:25px 18px 20px;position:relative;overflow:hidden}.quest-card>.eyebrow{font-size:9px;color:#718260;letter-spacing:1.6px}.portrait-wrap{height:139px;position:relative;margin:5px -8px -1px}.portrait-wrap::before{content:'';position:absolute;width:118px;height:118px;border-radius:50%;background:#dfe6d0;left:50%;top:12px;transform:translateX(-50%)}#unicorn-portrait{width:100%;height:100%;position:relative;object-fit:contain}.portrait-spark{position:absolute;color:#ac945a;font-size:19px}.p-one{top:21px;right:37px;transform:rotate(12deg)}.p-two{left:35px;bottom:26px;font-size:25px}.quest-card h2{font-family:var(--serif);font-size:26px;letter-spacing:-.3px;line-height:1.16;font-weight:400;margin:0 0 11px}.quest-card p{font-size:11px;line-height:1.7;color:#7d8872;margin:0}.quest-divider{height:1px;background:#d6ddca;margin:22px 0 17px}.time-row{display:flex;align-items:center;justify-content:space-between;font-size:10px}.time-row>span{display:flex;align-items:center;gap:6px;color:#7d8872}.time-row .icon{width:14px;height:14px}.time-row strong{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.no-rush{font-size:9px;color:#96a087;text-align:left;margin:8px 0 0 20px}.action-stack{display:flex;flex-direction:column;gap:10px;margin-top:15px}.primary-button{display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--green);background:var(--green);color:#fffdf6;border-radius:10px;padding:14px 16px;font-size:11px;font-weight:550;line-height:1.4;min-height:44px}.primary-button:hover{background:#204733;box-shadow:0 4px 10px #254c3d15}.primary-button .icon{width:16px;height:16px}.hint-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 15px;border:1px solid #d8decd;border-radius:10px;background:#fffdf6;font-size:11px;font-weight:550}.hint-button:hover{background:#edf1e3}.hint-button .icon{width:16px;height:16px;color:#9a864d}.hint-count{border:1px solid #e3e6da;border-radius:50%;height:19px;width:19px;display:grid;place-items:center;font-size:9px;margin-left:auto;color:#8a947e}.hint-button span:nth-child(2){margin-right:auto}.tip-card{padding:17px 10px 10px;display:flex;gap:10px;align-items:flex-start;min-height:69px}.tip-star{font-size:22px;line-height:1;color:#aa9a66}.tip-card p{font-size:10px;line-height:1.7;margin:0;color:#8b937c}.keyboard-tip{border-top:1px dashed #dce2d3;padding:14px 10px 0;color:#98a08d;font-size:9px;line-height:1.8}.keyboard-tip span{display:block;margin-top:5px;font-size:8px}.page-footer{display:flex;justify-content:space-between;align-items:center;padding:23px 0 26px;color:#909a84;font-size:9px;gap:20px}.page-footer span:first-child{display:flex;align-items:center;gap:7px}.page-footer .icon{width:13px;height:13px;stroke-width:1.4}.page-footer span:last-child{font-size:8px;letter-spacing:1.5px}.tap-feedback{position:absolute;pointer-events:none;transform:translate(-50%,-50%);border:2px solid #fff9d5;border-radius:50%;width:34px;height:34px;opacity:0;box-shadow:0 0 0 5px #ffffff18}.tap-feedback.ping{animation:tap-ping .7s ease-out forwards}@keyframes tap-ping{0%{opacity:.9;transform:translate(-50%,-50%) scale(.5)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.6)}}.celebration[hidden]{display:none}.celebration{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(340px,85%);padding:25px 24px 24px;background:#fffdf3f7;border:1px solid #dbe0c9;border-radius:20px;text-align:center;box-shadow:0 18px 80px #193d3260;backdrop-filter:blur(15px);animation:arrive .4s ease-out}.celebration-star{color:#af9350;font-size:36px;line-height:1.1;margin-bottom:12px}.celebration>span{font-size:8px;letter-spacing:1.9px;color:#7c8f67;font-weight:650}.celebration h2{font-family:var(--serif);font-size:29px;line-height:1.15;letter-spacing:-.5px;font-weight:400;margin:8px 0 12px}.celebration p{font-size:11px;line-height:1.6;color:#839175;margin:0 0 20px}.celebration .primary-button{width:100%}@keyframes arrive{from{opacity:0;transform:translate(-50%,-45%)}to{opacity:1;transform:translate(-50%,-50%)}}dialog{position:fixed;border:1px solid #dce3d2;max-width:470px;width:calc(100% - 32px);padding:32px;border-radius:22px;background:var(--cream);color:var(--ink);box-shadow:0 25px 100px #16382655;max-height:90dvh;overflow:auto}dialog::backdrop{background:#173f3280;backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:16px;right:16px}.dialog-spark{display:block;font-size:34px;color:#b29859;margin-bottom:15px}dialog h2{font-family:var(--serif);font-size:34px;font-weight:400;line-height:1.1;margin:10px 0 18px}dialog p,dialog li{font-size:12px;color:#798771;line-height:1.8}dialog ol{padding-left:18px}dialog li{padding-left:3px;margin:10px 0}dialog strong{color:var(--ink);font-weight:600}.help-note{padding-top:12px;border-top:1px solid var(--line);font-size:10px}dialog .primary-button{width:100%;margin-top:20px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1600px){.page-shell{padding:0 50px}.intro{padding-top:48px;padding-bottom:38px}.game-layout{grid-template-columns:minmax(0,1fr) 248px;gap:28px}}
@media(max-width:1120px){.page-shell{padding:0 28px}.header-tagline{display:none}.intro{padding-top:30px}.intro p{max-width:480px;font-size:12px}.session-stats{gap:19px}.game-layout{grid-template-columns:minmax(0,1fr) 210px;gap:18px}.forest-toolbar{padding:15px}.difficulty-group button{min-width:54px;padding:8px 9px;font-size:9px}.forest-seed{display:none}.quest-card{padding:21px 15px 18px}.portrait-wrap{height:120px}.portrait-wrap::before{width:102px;height:102px;top:10px}.p-one{right:27px}.p-two{left:25px}.quest-card h2{font-size:23px}.quest-divider{margin:17px 0 14px}.time-row{font-size:9px}.no-rush{font-size:8px}.tip-card{padding-top:14px}.page-footer span:last-child{font-size:7px;letter-spacing:1px}}
@media(max-width:820px){.page-shell{padding:0 22px}.site-header{height:77px}.brand{font-size:27px}.brand-icon{width:33px;height:33px;border-radius:10px}.intro{gap:20px;padding:28px 0 25px}h1{font-size:39px}.intro p{font-size:11px;max-width:370px}.session-stats{gap:16px;padding-top:25px}.stat{min-width:60px}.stat-label{font-size:7px;letter-spacing:.8px}.stat-value{font-size:25px}.best-caption{font-size:6px}.game-layout{grid-template-columns:1fr;gap:17px}.quest-rail{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;row-gap:0;align-items:center}.quest-card{grid-row:1/3;display:grid;grid-template-columns:80px 1fr;padding:16px;text-align:left;min-height:122px;border-radius:14px}.quest-card>.eyebrow{grid-column:2;font-size:7px;letter-spacing:1px}.portrait-wrap{grid-row:1/5;grid-column:1;margin:0 0 0 -14px;height:96px;align-self:center}.portrait-wrap::before{width:76px;height:76px;top:8px}.p-one,.p-two{display:none}.quest-card h2{grid-column:2;font-size:20px;line-height:1.13;margin:6px 0 9px}.quest-card h2 br{display:none}.quest-card>p{display:none}.quest-divider{display:none}.time-row{grid-column:2;gap:6px;font-size:8px;justify-content:flex-start}.time-row strong{font-size:12px;margin-left:5px}.no-rush{display:none}.action-stack{margin:0;gap:8px;flex-direction:row}.action-stack button{flex:1;padding:11px 10px;font-size:10px;min-height:42px}.hint-count{margin:0}.hint-button span:nth-child(2){margin:0}.action-stack .icon{width:14px;height:14px}.tip-card{min-height:0;padding:9px 1px 0;align-items:center;gap:7px}.tip-card p{font-size:9px;line-height:1.5}.tip-card br{display:none}.tip-star{font-size:20px}.keyboard-tip{display:none}.page-footer{padding-top:23px}.scene-viewport{aspect-ratio:3/2}}
@media(max-width:540px){.page-shell{padding:0 14px}.site-header{height:69px;gap:10px}.brand{font-size:24px;gap:8px}.brand-icon{width:30px;height:30px;border-radius:9px}.brand-icon svg{width:22px;height:22px}.header-actions{gap:11px}.text-button{font-size:10px;gap:5px}.text-button .icon{width:15px;height:15px}.icon-button{height:30px;width:30px}.intro{display:block;padding:25px 0 20px;position:relative}.eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:35px;margin:9px 0 10px;letter-spacing:-1px}.intro p{font-size:11px;max-width:300px;line-height:1.7}.session-stats{position:static;padding:16px 0 0;justify-content:space-between;gap:16px}.stat{display:flex;align-items:center;gap:8px;min-width:0}.stat-label{font-size:7px;letter-spacing:1px;margin:0}.stat-value{font-size:19px;gap:5px}.stat-value .icon{width:16px;height:16px}.stat-divider{height:18px}.best-caption{display:none}.forest-card{border-radius:13px}.forest-toolbar{padding:12px;gap:8px}.forest-heading{gap:7px}.forest-leaf{width:28px;height:28px}.forest-leaf .icon{width:16px;height:16px}.forest-heading h2{font-size:10px;max-width:100px}.forest-number{font-size:6px;letter-spacing:1.2px;margin-top:3px}.difficulty-group{gap:0;padding:2px;border-radius:7px}.difficulty-group button{font-size:8px;min-width:0;padding:7px 7px;border-radius:5px}.scene-viewport{aspect-ratio:3/2}.scene-label{font-size:7px;top:9px;left:9px;padding:6px 8px;gap:5px}.status-dot{width:4px;height:4px}.zoom-controls{bottom:8px;right:8px;border-radius:7px}.zoom-controls button{width:30px;height:30px;font-size:18px}.zoom-controls span{font-size:8px;min-width:30px}.forest-footer{min-height:42px;padding:11px 12px;font-size:8px;line-height:1.4}.forest-footer .icon{width:12px;height:12px}.game-layout{gap:14px}.quest-rail{column-gap:10px}.quest-card{padding:12px 9px;grid-template-columns:57px 1fr;min-height:113px;border-radius:11px}.portrait-wrap{height:77px;margin-left:-10px}.portrait-wrap::before{width:58px;height:58px;top:10px}.quest-card>.eyebrow{font-size:6px;letter-spacing:.7px}.quest-card h2{font-size:17px;margin:5px 0 9px}.time-row>span{font-size:0;gap:0}.time-row .icon{width:12px;height:12px}.time-row strong{font-size:11px}.action-stack{flex-direction:column;gap:7px;grid-row:1/3;grid-column:2}.action-stack button{min-height:40px;gap:7px;padding:10px;font-size:10px}.hint-count{height:16px;width:16px;font-size:8px;margin-left:4px}.tip-card{grid-column:1/3;padding:13px 3px 0}.tip-card p{font-size:9px}.page-footer{padding:20px 0;font-size:8px}.page-footer span:last-child{display:none}.celebration{padding:15px;width:80%;border-radius:13px}.celebration-star{font-size:22px;margin-bottom:5px}.celebration>span{font-size:7px}.celebration h2{font-size:24px;margin:7px 0}.celebration p{font-size:10px;margin-bottom:12px}.celebration .primary-button{font-size:10px;min-height:37px;padding:10px}.dialog-spark{font-size:28px}dialog{padding:25px}dialog h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.scene-shell{position:relative;isolation:isolate}.scene-label,.zoom-controls{z-index:3}.scene-vignette{z-index:1}.tap-feedback{z-index:2}.scene-viewport{isolation:auto}

@media(min-width:821px) and (max-height:950px){
  .page-shell{max-width:min(1480px,calc((100dvh - 295px)*1.5 + 342px));padding:0 30px}
  .site-header{height:74px}
  .intro{padding:25px 0 23px}
  .intro h1{font-size:42px;margin:8px 0 9px}
  .intro p{font-size:12px}
  .game-layout{grid-template-columns:minmax(0,1fr) 215px;gap:20px}
  .forest-toolbar{padding:14px 16px}
  .quest-card{padding:20px 15px 17px}
  .portrait-wrap{height:116px}
  .portrait-wrap::before{width:99px;height:99px}
  .quest-card h2{font-size:23px}
  .quest-divider{margin:17px 0 14px}
  .keyboard-tip{font-size:8px;padding-top:11px}
  .header-tagline{font-size:8px;letter-spacing:1.4px}
  .session-stats{gap:20px}
  .forest-seed{display:none}
}

/* Five difficulty choices remain visible on every screen size. */
.difficulty-group{flex-shrink:0}
.difficulty-group button{white-space:nowrap}
.difficulty-group .advanced-mode{color:#88704d;background:#f0eadb}
.difficulty-group .advanced-mode:hover{background:#e9dfc8}
.difficulty-group .advanced-mode.selected{background:#77613b;color:#fff9e9}
.mode-note{display:flex;align-items:center;gap:9px;border-top:1px solid #e8ecdf;padding:10px 20px;background:#f6f8ef;line-height:1.5;color:#819076}
.mode-note>span{font-size:8px;letter-spacing:.7px;text-transform:uppercase;border:1px solid #dce3d0;border-radius:4px;padding:2px 5px;white-space:nowrap;font-weight:600}
.mode-note p{font-size:9px;margin:0}
.mode-note[data-difficulty="expert"],.mode-note[data-difficulty="legendary"]{background:#f7f1e4;color:#8b7652}
.mode-note[data-difficulty="expert"]>span,.mode-note[data-difficulty="legendary"]>span{border-color:#e1d4b4}
@media(min-width:821px) and (max-width:1250px){.forest-toolbar{flex-wrap:wrap;gap:10px}.difficulty-group{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.difficulty-group button{padding:9px 7px;min-width:0}}
@media(min-width:821px) and (max-height:950px){.page-shell{max-width:min(1480px,calc((100dvh - 335px)*1.5 + 342px))}.forest-toolbar{flex-wrap:wrap;gap:10px}.difficulty-group{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.difficulty-group button{padding:9px 7px;min-width:0}.mode-note{padding:9px 16px}}
@media(max-width:640px){.forest-toolbar{flex-wrap:wrap;gap:10px}.forest-heading h2{max-width:none;font-size:12px}.difficulty-group{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.difficulty-group button{font-size:9px;min-width:0;padding:10px 3px;min-height:34px}.mode-note{gap:7px;padding:9px 12px}.mode-note p{font-size:8px}.mode-note>span{font-size:7px}}
