The forest bride takes out the stone and throws it into the water; it drops rapidly out of sight. \n\nBut something silvery moves in the depths. Glinting, it heads towards her, gathering speed.\n\n<<display "Sword">>\n
The goblin sighs heavily, and agrees.\n<<set $stone = 1>><<set $feather = 1>><<set $tooth = 1>>\s\n<<set $cobble = 0>><<set $chisel = 0>><<set $trumpet = 0>>\s\n\n<<display "The Stall">>\n
<<map 245 90>><html><IMG SRC="TFB_outwith_glade_L.png" id="pic"></html>\nDucking under low branches, the forest bride makes her way to the right, the undergrowth trying to trip her at every step.\n\nShe's sure the hidden glade was just through this [[next clump of ferns.|lost]]\n\n<<timedcontinue 30s>>[[Eventually, a path opens up towards the glade|Glade]].
<<map 1000 1000>>No windows here, just darkness.\n\nAnd <<cyclinglink "things" "scurrying things" "vast saw-blades hanging" "things brushing her ankles" "the scrape of metal" "something old and terrible" end>> in the darkness.\n\nThe forest bride fumbles for her gifts; the [[feather|Feather Mill]], the [[stone|Stone Mill]] and the [[tooth|Tooth Mill]].\n\n
<<map 220 90>>The forest bride lands and rolls, notably closer to the glade. \n\nBut she feels it start, and shy away, the wood rippling around it.\n\n<<timedreplace 1.5s>>She [[dives|Glade]] for a clump of ferns at its edge. <<replacewith>>Then it's out of reach [[again|leap]].<<endtimedreplace>>
<<map 700 130>>The path to the [[sawmill|Old Sawmill]] follows the <<replace "old road">>old road. The forest bride picks her way over <<replace "broken tarmacadam">>ancient tarmacadam, cracked and fractured by weeds and <<replace "young trees">>young trees. (There are no old trees by the sawmill)<<endreplace>><<endreplace>><<endreplace>>.\n
<<remember $year = 1>>\s\n<<set $first = "none">>\s\n<<remember $mill = 0 >>\s\n<<remember $lake = 0 >>\s\n<<remember $orchard = 0 >>\s\n<<remember $glade = 0 >>\s\n<<remember $stones = 0 >>\s\n<<remember $begun = "Y">>\s\n<<remember $won = 0>>\n<<goto "Home">>
<<map 500 200>><<if $mill + $lake + $orchard + $glade + $stones eq 5>><<display "Win">><<else>><<set $year = $year + 1>><<remember $year>><html><IMG SRC="TFB_moon.gif" id="pic"></html>\n[[Night falls in the forest|Home]].<<endif>>
<<if $begun eq "Y">>\s\n<<set $first = "none">>\s\n<<else>>\s\n<<remember $year = 1>>\s\n<<set $first = "none">>\s\n<<remember $mill = 0 >>\s\n<<remember $lake = 0 >>\s\n<<remember $orchard = 0 >>\s\n<<remember $glade = 0 >>\s\n<<remember $stones = 0 >>\s\n<<remember $begun = "Y">>\s\n<<endif>>\s\n<<display Title>>\n
The forest bride screws up her courage and goes through the broken door. \n\nInside is a trap for dust and shadows. They congeal here, a tarry accumulation on every surface. The forest bride keeps the door behind her, ready to [[run|Old Sawmill]].\n\nThe windows are pale rectangles of <<replace "green light">>green light - the shadows drink it greedily, leaving but a thin trickle for the bride<<endreplace>>.\n\nThis is just the ante-room, the forest bride knows; offices, reception area. The mill floor lies ahead. It will be even darker there, and the bride senses something <<replace "ancient">>ancient and cruel<<endreplace>> waiting. \n\nJust through that [[door...|Mill Heart]]
The bride's bag contains:\s\n<<if $feather>><<print $s>>A dark feather. <<endif>>\s\n<<if $stone>><<print $s>>A sea-worn stone. <<endif>>\s\n<<if $tooth>><<print $s>>A fossil tooth. <<endif>>\s\n<<if $chisel gt 1>><<print $s>>Some (<<print $chisel>>) chisels. <<else if $chisel eq 1>><<print $s>>A chisel. <<endif>>\s\n<<if $trumpet gt 1>><<print $s>>Some (<<print $trumpet >>) ear-trumpets. <<else if $trumpet eq 1>><<print $s>>An ear-trumpet. <<endif>>\s\n<<if $cobble gt 1>><<print $s>>Some (<<print $cobble >>) cobblestones. <<else if $cobble eq 1>><<print $s>>A cobblestone. <<endif>>\s\n
The forest bride steps back as a metre long salmon breaks the surface. As it emerges it transforms, becoming a silver sword that flies over her bride's head to embed itself in the old wood of the dock. \n\nThe bride wonders if should she take up the <<replace "sword?">>sword? It's broad <<replace "bladed">>bladed, with <<replace "fine writing">>fine writing (it reads 'All Monsters Have Their Weak Spots')<<endreplace>> along the edge<<endreplace>>, and the handle is scaled. <<endreplace>> Does she [[dare]] to fight monsters? She'd be safer at [[home|Bad Back]].
The forest bride plunges the sword into the kraken's gaping beak. Its tentacles thrash briefly, then it dissolves into blackness.\n\nHer lungs feel like they're on fire, and the surface seems far above her. And the final monster was closing fast.\n\n<<continue "...">><<map 0 520>>[[The|strike]] [[final|strike]] [[monster|strike]] [[was|strike]] [[a|strike]] [[massive|strike]] [[pike,|strike]] [[as|strike]] [[big|strike]] [[as|strike]] [[the|strike]] [[bride's|strike]] [[cottage,|strike]] [[with|strike]] <<replace "scales">>[[near|strike]] [[seamless|strike]] <<replace "scales">>[[scales|strike]] [[(there|strike]] [[was|strike]] [[a|strike]] [[tiny|strike]] [[gap,|gap]] [[but|strike]] [[it|strike]] [[was|strike]] [[no|strike]] [[bigger|strike]] [[than|strike]] [[a|strike]] [[dot)|strike]]<<endreplace>><<endreplace>> [[like|strike]] [[iron|strike]] [[plates,|strike]] [[and|strike]] [[row|strike]] [[upon|strike]] [[row|strike]] [[of|strike]] [[teeth.|strike]]
The forest bride takes out the feather and drops it onto the water. It sits on the surface, drifting slightly. \n\nBut it seems to have attracted something's attention. A silvery glimmer moves in the depths. Glinting it heads towards her, gathering speed.\n\n<<display "Sword">>
<<if $choice eq "feather">><<display "Feather Glade">>\s\n<<else if $choice eq "stone">><<display "Stone Glade">>\s\n<<else if $choice eq "tooth">><<display "Tooth Glade">>\s<<endif>>
<<map 750 60>>\s\n<<if $mill >><html><IMG SRC="TFB_sawmill1.png" id="pic"></html>\nThe mill is just a ruin now, fallen in and silent. Brambles twist through its brickwork. White flowers grow on the rubble. The forest is reclaiming it.\n\nThe forest bride considers <<cyclinglink $dest "going home" "following the river towards the Silver Lake" "taking the narrow path down towards the Standing Stones" "going home">>.\n<<else>><html><IMG SRC="TFB_sawmill0.gif" id="pic"></html>\nThe abandoned sawmill is full of ghosts, the forest bride <<replace "knows">>knows. She can tell<<endreplace>>.\n\nThe mill sags, its spine mossy and broken. Walls twisted and torn by age and storm. Blind and glassless windows. The door hangs half off its hinges. \n\nFrom inside, the occasional scrape of metal on metal. Dark chimes.\n\nThe forest bride does not like this place. She considers <<cyclinglink $dest "going inside, nonetheless" "going home" "following the river towards the Silver Lake" "taking the narrow path down towards the Standing Stones">>.<<endif>>\n\n[[She decides.|Mill Choice]]\n
The air fills with light and music; the stones speaking to each other with sounds and images.\n<<remember $stones = 1>>
The forest bride pulls out the dark feather. It doesn't seem to do anything.\n\nA raven calls from a nearby tree.\n\n"//Sister-in-law! Sister-in-law!//" caws the raven, "//Foolish girl! You're making it look difficult.//"\n\nThe forest bride looks up.\n\n"//No sense messing around,//" the raven says, "//Just pick a path and follow it. That will <<replace "work">>work. <<replace "Probably">>Probably. I should think<<endreplace>><<endreplace>>.//"\n\nThe forest bride resolved to [[try.|lost]]\n\n<<set $imin = 0>>
(function () {\n version.extensions['replaceMacro'] = {\n major: 1,\n minor: 3,\n revision: 0\n };\n macros['continue'] = macros['insert'] = macros['replace'] = {\n handler: function (g, e, f, b) {\n var h = insertElement(null, "span", null, "replacement");\n var k = b.source.indexOf('>>', b.matchStart) + 2;\n var a = b.source.slice(k);\n var d = -1;\n var c = '';\n var l = 0;\n var el = e.length\n if (e=="continue") {\n d=k+a.length;\n c=a;\n } else for(var i = 0; i < a.length; i++) {\n if(a.substr(i, 7 + el) == '<<end' + e + '>>') {\n if(l == 0) {\n d = k + i + 7 + el;\n break;\n }\n else {\n l--;\n c += a.charAt(i);\n }\n }\n else {\n if(a.substr(i, 2 + el) == '<<' + e) {\n l++;\n }\n c += a.charAt(i);\n }\n }\n if(d != -1) {\n var m = Wikifier.createInternalLink(g, null);\n m.className = "internalLink replaceLink";\n insertText(m, f[0]);\n insertText(h, c);\n g.appendChild(h);\n = "none";\n m.onclick = function () {\n var n = this.nextSibling;\n if(n) {\n var t = n.firstChild ? n.firstChild.nodeValue : "";\n removeChildren(n);\n new Wikifier(n, t);\n = "inline";\n n.classList.add("replacement-in");\n setTimeout(function () {\n n.classList.remove("replacement-in");\n }, 1);\n scrollWindowTo(n);\n }\n if(e == "insert") {\n var p = document.createElement("span");\n p.innerHTML = this.innerHTML;\n p.className = this.className + " disabled";\n this.parentNode.insertBefore(p, this.nextSibling);\n }\n this.parentNode.removeChild(this);\n }\n b.nextMatch = d;\n }\n else {\n throwError(g, "can't find matching end" + e);\n return;\n }\n }\n }\n macros['endinsert'] = macros['endreplace'] = {\n handler: function () {}\n }\n scrollWindowTo=function(E){var D=window.scrollY?window.scrollY:document.body.scrollTop;\n var G=J(E);if(!G){return;}var C=Math.abs(D-G);var B=0;var I=(D>G)?-1:1;var F=window.setInterval(H,25);\n function H(){B+=0.1;window.scrollTo(0,D+I*(C*Math.easeInOut(B)));if(B>=1){window.clearInterval(F);\n }}function J(N){var O=A(N);var P=O+N.offsetHeight;var K=window.scrollY?window.scrollY:document.body.scrollTop;\n var L=window.innerHeight?window.innerHeight:document.body.clientHeight;var M=K+L;\n if(O>=K){if(P>M){if(N.offsetHeight<L){return(O-(L-N.offsetHeight)+20);}else{return O;\n }}}}function A(K){var L=0;while(K.offsetParent){L+=K.offsetTop;K=K.offsetParent;}return L;\n }};\n}());\n\nversion.extensions.ifMacros={major:2,minor:0,revision:0};macros["if"]={handler:function(place,macroName,params,parser){\nvar conditions=[],clauses=[],srcOffset=parser.source.indexOf(">>",parser.matchStart)+2,src=parser.source.slice(srcOffset),endPos=-1,currentCond=parser.fullArgs(),currentClause="",t=0,nesting=0;\nfor(var i=0;i<src.length;i++){if(src.substr(i,9)=="<<endif>>"){nesting--;if(nesting<0){endPos=srcOffset+i+9;\nconditions.push(currentCond);clauses.push(currentClause);break;}}if((src.substr(i,6)=="<<else")&&nesting==0){conditions.push(currentCond);\nclauses.push(currentClause);currentClause="";t=src.indexOf(">>",i+6);if(src.substr(i+6,4)==" if "){currentCond=Wikifier.parse(src.slice(i+10,t));\n}else{currentCond="true";}i=t+2;}if(src.substr(i,5)=="<<if "){nesting++;}currentClause+=src.charAt(i);\n}try{if(endPos!=-1){parser.nextMatch=endPos;for(i=0;i<clauses.length;i++){if(eval(conditions.shift())){new Wikifier(place,clauses[i ].trim());\nbreak;}}}else{throwError(place,"can't find matching endif");}}catch(e){throwError(place,"bad condition: "+e.message);\n}}};\n\n\n(function(){version.extensions.onceMacro={major:1,minor:0,revision:0};\nmacros.once={handler:function(g,e,f,b){function tagcontents(starttag,endtag,k){var a=b.source.slice(k),l=0,c="";\nfor(var i=0;i<a.length;i++){var w=endtag.length;if(a.substr(i,w)==endtag){if(l==0){b.nextMatch=k+i+w;\nreturn c;}else{l--;c+=a.charAt(i);}}else{if(a.substr(i,starttag.length)==starttag){l++;\n}c+=a.charAt(i);}}return"";}var o="<<"+e,eo="<<end"+e+">>",k=b.source.indexOf(">>",b.matchStart)+2,d=tagcontents(o,eo,k),shv=state.history[0].variables,os="once seen";\nshv[os]=shv[os]||[];if(d){if(shv[os].indexOf(d)==-1){new Wikifier(insertElement(g,"span",null,"once"),d);\nshv[os].push(d);}}else{throwError(g,"can't find matching end"+e);\nreturn;}}};macros.endonce={handler:function(){}};}());\n\nversion.extensions["cyclinglinkMacro"]={major:3,minor:2,revision:0};macros.cyclinglink={handler:function(a,b,c){var rl="cyclingLink";\nfunction toggleText(w){w.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\"none")?"inline":"none");}switch(c[c.length-1]){case"end":var end=true;\nc.pop();break;case"out":var out=true;c.pop();break;}var v="";if(c.length&&c[0][0]=="$"){v=c[0].slice(1);\nc.shift();}var h=state.history[0].variables;if(out&&h[v]===""){return;}var l=Wikifier.createInternalLink(a,null);\nl.className="internalLink cyclingLink";l.setAttribute("data-cycle",0);for(var i=0;\ni<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));var d=insertElement(null,"span",null,"cyclingLink"+((on)?"En":"Dis")+"abled");\nif(on){h[v]=c[ i ];l.setAttribute("data-cycle",i);}else{"none";}insertText(d,c[ i ]);\nif(on&&end&&i==c.length-1){l.parentNode.replaceChild(d,l);}else{l.appendChild(d);\n}}l.onclick=function(){var t=this.childNodes;var u=this.getAttribute("data-cycle")-0;\nvar m=t.length;toggleText(t[u]);u=(u+1);if(!(out&&u==m)){u%=m;if(v){h[v]=c[u];}}else{h[v]="";\n}if((end||out)&&u==m-(end?1:0)){if(end){var n=this.removeChild(t[u]);n.className=rl+"End";\"inline";this.parentNode.replaceChild(n,this);}else{this.parentNode.removeChild(this);\nreturn;}return;}toggleText(t[u]);this.setAttribute("data-cycle",u);};}};\n\n(function(){\nvar bs = String.fromCharCode(92);\nWikifier.formatters.unshift({\n name: "continuedLine",\n match: bs+bs+"s",\n handler: function(a) {\n a.nextMatch = a.matchStart+3;\n }\n});\n}());\n\n\nHistory.prototype.display=function(d,b,a){var c=tale.get(d);this.history.unshift({passage:c,variables:clone(this.history[0].variables)});\nthis.history[0];var e=c.render();"visible";if(a!="offscreen"){var p=document.getElementById("passages");\nfor(var i=0;i<p.childNodes.length;i+=1){var q=p.childNodes[ i ];q.classList.add("transition-out");\nsetTimeout(function(){p.removeChild(q);},1000);}e.classList.add("transition-in");\nsetTimeout(function(){e.classList.remove("transition-in");},1);p.appendChild(e);}if((a=="quietly")||(a=="offscreen")){"visible";\n}if(a!="offscreen"){document.title=tale.title;;document.title+=": "+c.title;\nwindow.location.hash=this.hash;window.scroll(0,0);}return e;};\n\n(function () {\n version.extensions['timedreplaceMacro'] = {\n major: 2,\n minor: 3,\n revision: 0\n };\n macros['timedcontinue'] = macros['timedinsert'] = macros['timedreplace'] = {\n handler: function (g, e, f, b) {\n function cssTimeUnit(s) {\n if (typeof s == "string") {\n if (s.slice(-2).toLowerCase() == "ms") {\n return Number(s.slice(0, -2)) || 0;\n }\n else if (s.slice(-1).toLowerCase() == "s") {\n return Number(s.slice(0, -1)) * 1000 || 0;\n }\n }\n throwError(g, s + " isn't a CSS time unit");\n return 0;\n }\n\n function tagcontents(starttag, endtag, k) {\n var a = b.source.slice(k);\n var l = 0;\n var c = "";\n for (var i = 0; i < a.length; i++) {\n var w = endtag.length;\n if (a.substr(i, w) == endtag) {\n if (l == 0) {\n b.nextMatch = k + i + w;\n return c;\n }\n else {\n l--;\n c += a.charAt(i);\n }\n }\n else {\n if (a.substr(i, starttag.length) == starttag) {\n l++;\n }\n c += a.charAt(i);\n }\n }\n return "";\n }\n var tr = "<<" + e;\n var rw = "<<replacewith>>";\n var etr = "<<end" + e + ">>";\n var k = b.source.indexOf('>>', b.matchStart) + 2;\n var c, d;\n if (e == "timedcontinue") {\n d = b.source.slice(k);\n b.nextMatch = k + d.length;\n }\n else if (e == "timedreplace") {\n c = tagcontents(tr, rw, k);\n d = tagcontents((c ? rw : tr), etr, c ? b.nextMatch : k);\n }\n else if (e == "timedinsert") {\n d = tagcontents(tr, etr, k);\n }\n else if (e == "timedremove") {\n c = tagcontents(tr, etr, k);\n }\n var tm;\n tm = cssTimeUnit(f[0]);\n var h;\n if (c) {\n if (d) {\n g = insertElement(g, "span", null, "timedreplacements");\n }\n h = insertElement(g, "span", null, "timedreplacement timedremove");\n new Wikifier(h, c);\n if (d || e == "timedremove") {\n setTimeout(function () {\n h.classList.add("replacement-out");\n setTimeout(function () {\n h.parentNode.removeChild(h);\n }, 1000);\n }, tm);\n }\n }\n if (d) {\n var m = insertElement(g, "span", null, "timedreplacement timedinsert", d);\n = "none";\n setTimeout(function () {\n if (m) {\n var t = m.firstChild ? m.firstChild.nodeValue : "";\n removeChildren(m);\n new Wikifier(m, t);\n = "inline";\n m.classList.add("replacement-in");\n setTimeout(function () {\n m.classList.remove("replacement-in");\n }, 1);\n scrollWindowTo(m);\n }\n }, tm);\n }\n else if (!c && e != "timedremove") {\n throwError(g, "can't find matching end" + e);\n return;\n }\n }\n }\n macros['timedremove'] = macros['timedreplace'];\n macros['replacewith'] = macros['endtimedinsert'] = macros['endtimedremove'] = macros['endtimedreplace'] = {\n handler: function () {}\n }\n scrollWindowTo=function(E){var D=window.scrollY?window.scrollY:document.body.scrollTop;\n var G=J(E);if(!G){return;}var C=Math.abs(D-G);var B=0;var I=(D>G)?-1:1;var F=window.setInterval(H,25);\n function H(){B+=0.1;window.scrollTo(0,D+I*(C*Math.easeInOut(B)));if(B>=1){window.clearInterval(F);\n }}function J(N){var O=A(N);var P=O+N.offsetHeight;var K=window.scrollY?window.scrollY:document.body.scrollTop;\n var L=window.innerHeight?window.innerHeight:document.body.clientHeight;var M=K+L;\n if(O>=K){if(P>M){if(N.offsetHeight<L){return(O-(L-N.offsetHeight)+20);}else{return O;\n }}}}function A(K){var L=0;while(K.offsetParent){L+=K.offsetTop;K=K.offsetParent;}return L;\n }};\n}());\n\nmacros['map'] =\n{\n handler: function(place,macroName,params)\n {\n var mapX = params[0];\n var mapY = params[1];\n\n document.getElementById("themap").style.left = "-"+mapX+"px";\n document.getElementById("themap") = "-"+mapY+"px";\n\n }\n};\n\nversion.extensions.timedgotoMacro={major:1,minor:1,revision:0};macros["goto"]=macros["timedgoto"]={timer:null,handler:function(a,b,c,d){\nfunction cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return Number(s.slice(0,-2))||0;\n}else{if(s.slice(-1).toLowerCase()=="s"){return Number(s.slice(0,-1))*1000||0;}}}throwError(a,s+" isn't a CSS time unit");\nreturn 0;}var t,d,m,s;t=c[c.length-1];d=d.fullArgs();m=0;if(b!="goto"){d=d.slice(0,d.lastIndexOf(t));\nm=cssTimeUnit(t);}d=eval(Wikifier.parse(d));if(d+""){if(this.timer){clearTimeout(this.timer);\n}s=state.history[0].passage.title;this.timer=setTimeout(function(){if(state.history[0].passage.title==s){state.display(d,a);\n}},m);}}};\n\n(function(){var r="";var s=Wikifier.formatters;for(var j=0;j<s.length;j++){if(s[j].name=="image"){r=s[j].lookahead;\nbreak;}}var div=document.getElementById("storeArea").firstChild.nextSibling;while(div){if(r){k(new RegExp(r,"mg"),4);\n}var b=String.fromCharCode(92);var u=b+"s*['"+'"]?([^"'+"']+(jpe?g|a?png|gif|bmp))['"+'"]?'+b+"s*";\nk(new RegExp("url"+b+"("+u+b+")","mig"),1);k(new RegExp("src"+b+"s*="+u,"mig"),1);\ndiv=div.nextSibling;}function k(c,e){do{var d=c.exec(div.innerHTML);if(d){var i=new Image();\ni.src=d[e];}}while(d);}}());
<<remember $mill = 1>>From above there is a great cracking noise, and a huge section of roof collapses. \n\n<<continue "(The bride ducks under a desk.)">> Warm afternoon sunlight floods in, scouring shadows. Birdsong.\n\nThe forest bride brushes herself off, and climbs out of the ruined building. Foxes and badgers watch her from the edge of the wood.\n\nThere will always be old pain here, the forest bride knows, but it's just <<replace "memories now">>memories now. Memories and dust<<endreplace>>. \n\nThe afternoon is fading to dusk. Time for [[home.|Interlude]]\n
<<set $left = $left - 1>><<goto "into the orchard">>
<html><IMG SRC="TFB_title.gif" id="pic" align="left" style="padding-right: 200px;"></html>\n<<map 300 00>>\nFirst off, thanks for playing. This is version 0.C so let me know if you find bugs or typos.\n\n<<continue "...">><<map 230 558>>* * *\nThis game/story/thing was made by me (Ben Bruce | [[@ZenBenjamin|]] | [[Aliens, Robots & Octopodes|]]) for my beloved wife Misha; my best friend and inspiration. \n\nIt was made to mark our fifth anniversary: I've always written her a short story for our anniversaries. My original plan was for a more-or-less straight story with a few hyperlink references, but it spiralled massively out of control and ended up as this choose-your-own-adventure puzzle game thing. Also, very late. \n\n<<continue "...">><<map 450 550>>* * *\nIt's made using //[[Twine|]]//, which is free and super-cool.\n\nI highly recommend Porpentine's set of [[Twine resources|]]: this project wouldn't have been possible without them. Most of the macros used came from Leon Arnott's //[[Glorious Trainwrecks|]]//.\n\n<<continue "...">><<map 670 550>>* * *\nThe pictures were made in //[[Hexels|]]// which is an excellent grid based art tool. I particularly love the triangles ('trixels'). There's a demo version, so check it out.\n\n//[[GIMP|]]// and //[[Inkscape|]]// were used for some post work, particularly for the animations (Gimp) and compositing (Inkscape).\n\n[[...back...|Home]]\n\n
<html><IMG SRC="TFB_title.gif" id="pic"></html>\n<<map 0 0>>\n<<timedcontinue 3s>>[[...START...|Home]]\n<<timedcontinue 0.5s>>\n//(Authors Note: there are several large images used by this story/game: you might want to give them a minute to preload. <<timedcontinue 3s>>Make a cup of tea or something. <<timedcontinue 3s>>Coffee is fine too. <<timedcontinue 3s>>There are some puzzles, so better stay off the beer<<timedcontinue 1s>>, cider<<timedcontinue 1s>>, whisky<<timedcontinue 1s>>, gin<<timedcontinue 1s>> and/or absinthe. <<timedcontinue 3s>>Thanks<<timedcontinue 1s>>).//
<<remember $orchard = 1>>What was different about this one apple tree, wondered the forest bride? It was much the same as all the others.\n\nShe sat in front of it, pulling out the <<cyclinglink $first "stone" "feather" "tooth">> from her bag and <<continue "meditating.">>meditating.\n\n<<if $first eq "stone">>\s\nWhat was special about this tree, she decided, was nothing. That is, nothing that was not special to every other tree in the forest.\n\n<<continue "It lived.">>It lived. \n\nIt lived on soil and sunshine and rain-water. And it made apples; bright round red apples, each ready to become another living tree.\n\nIt buzzed and crawled and scurried with life: bees, ants, beetles. A living city. A cradle of creation.\n\n<<continue "Not boring at all.">>Not boring at all.\n\nShe plucked an apple from the tree. It was lovely.\n\n<<timedcontinue 1s>>The forest bride stayed in the orchard until darkness fell, then she went [[home|Interlude]]\n<<else if $first eq "feather">>\s\nMuch the same, she mused, but not exactly the same. <<continue "Not quite.">>Not quite.\n\nLook closely enough, she thought, and there are always differences. \n\nPatterns in the bark as diverse as fingerprints. The net of branches against the dark sky, different for each tree. Apples hung in different places. Different apples: each a sibling to each other, yes, but not twins, not clones. \n\n<<continue "It was all a matter of perspective.">>It was all a matter of perspective.\n\nShe plucked an apple from the tree. It was lovely.\n\n<<timedcontinue 1s>>The forest bride stayed in the orchard until darkness fell, then she went [[home|Interlude]]\n<<else>>\s\nIt took her a moment to work it out: this tree could be climbed!\n\n<<continue "She found a foothold...">>She found a foothold and began to climb. <<timedcontinue 1s>>It was tough going<<timedcontinue 1s>>, and her hair got tangled with leaves<<timedcontinue 1s>>, but finally the forest bride sat in the tree. <<timedcontinue 1s>>Apples hung from nearby branches, and a few gold coloured beetles buzzed around here. \n\n<<timedcontinue 1s>>She caught her breath. Of course the trees were boring if you walk boringly around them, she thought. They're meant for climbing up, dancing around or kissing under. \n\nShe plucked an apple from the tree. It was lovely.\n\n<<timedcontinue 1s>>The forest bride stayed in the orchard until darkness fell, then she went [[home|Interlude]]\n<<endif>>\s\n\n\n\n
The forest bride watches the glade<<once>> out of the corner of her eye<<endonce>>; it was either that or go back [[home|Bad Back]].\n\n<<timedcontinue 2s>>\s\nAfter a while, she feels the glade's attention wander. <<timedreplace 1s >>[[The bride darts forward|leaps2]]. <<replacewith>>But only for a moment. <<endtimedreplace>>\n\n<<timedcontinue 5s>>Far off in the woods, a fox screams. <<timedreplace 30ms >>The glade will be distracted: [[the bride leaps|leaps2]]. <<replacewith>>Then silence again.<<endtimedreplace>>\n\n<<timedcontinue 10s>><<display leap>>
<<replace "a feather" >>[[a dark feather|feather]]<<endreplace>>, <<replace "a stone" >>[[a pale stone with sea-worn hole|stone]]<<endreplace>>, and <<replace "a tooth" >>[[a fossil tooth, curved, carnivorous|tooth]]<<endreplace>>.
"//Okay yummyliver,//" said the goblin, "//That's it. Stores closed.//"\n\nHe began packing everything up into a tired looking carpet bag. \n\nHe paused to look up at the forest bride, "//You don't have to go home but you [[can't stay here|back to stones]].//"
.transition-in {\n color:transparent;\n text-shadow: #fff -4em 0 1em, #fff 4em 0 1em;\n position:absolute;\n}\n.passage:not(.transition-out) {\n transition: 1s;\n -webkit-transition: 1s;\n}\n.transition-out {\n opacity:0;\n position:absolute;\n}\n\n.passage[data-tags~=black] {\n color: black;\n}\n\n.passage[data-tags~=black] .internalLink { color: black; }\n\n.passage { font-size:1.6em;}\n\n#sidebar {\ntop: 240px;\ntext-align: right;\n}\n#minimap {\nposition:fixed;\n\nleft: 20px;\ntop: 20px;\nwidth: 200px;\nheight: 200px;\noverflow: hidden;\n}\n#minimap img {\nposition: absolute;\nleft: 0px;\ntop: 0px;\n\ntransition: all 2s;\n-webkit-transition: all 2s;\n}\n\n#Reset a {\ntext-align: right;\n}\n\n#pic {\nposition: relative;\ntop: -20px;\ndisplay: inline;\n}\n\n.passage[data-tags~=credits] {\n font-size:1.2em;\ntext-align: center;\n}\n
<<map 750 60>>The forest bride pulls out the stone. It is warm to the touch.\n\n<<continue "It glows with a gentle golden light.">>It glows with a gentle golden light.\n\nBut the things that surround her are not gentle. \n\nThese are creatures born of shadow and despair. Their teeth are rusty saw-blades, their claws are old bent nails. Their faces speak of old cruelty and ancient wounds. \n\nThey do not fear the forest bride, nor the gentle stone. \n\n<<continue "Snarling, they leap upon her.">>The forest bride ducks aside, stumbling over unseen debris. \n\nShe scrambles to her feet and <<continue "runs.">>runs.\n\nShe staggers out of the old sawmill, and keeps [[running.|Bad Back]]\n
Once again, the forest bride found herself transported...<<timedgoto "Standing Stones" 2s >>\n
The forest bride slashes with her sword, but it glances off harmlessly, and the creature's writhing knocks the sword from her grasp. \n\nTwisting out of the way, the forest bride kicks out for the surface, the monsters hard on her heels.\n\nShe drags herself out of the lake, and limps far enough from the shore to be out of the reach of monsters. The water churns behind her.\n\nDispirited, she heads for [[home|Bad Back]].
The Forest Bride
<html><IMG SRC="TFB_gifts_feather.gif" id="pic"></html>\nThe forest bride picks up the feather. \n\nIt is as dark as the <<replace "deep wildwood shadows">>deep wildwood shadows, the <<replace "tangled heart of the forest">>tangled heart of the forest, bramble and briar under a roof of twisted branches<<endreplace>><<endreplace>>. The forest bride feels a sunless chill envelop her. \n\nThe world seems sharper; she sees it with an icy clarity but at a great distance.\n\nThe forest bride picks up the feather, the [[stone]] and the [[tooth]], and puts them in her little bag. She leaves [[her cottage|cottage]].\n\n<<if $first eq "none">>\n<<set $first = "feather">>\n<<endif>>\n
<<set $left = $left + 1>><<goto "into the orchard">>
<<map 470 0>>The forest bride swims out to the centre of the lake. The water is so clear now, that the bride almost feels like she is flying. \n\nBelow her, she can see right to the bottom of the lake, where lie the various treasures that the forest's inhabitants have offered over the years. Silver and gold fish dart back and forth like still more treasure.\n\nThe forest bride swims and floats until she is tired, then walks back [[home|Interlude]] as evening arrives.\n\n<<remember $lake =1>>
<<map 750 60>>The forest bride clutches the fossil tooth in her hand.\n\nShe feels braver. \n\nHer eyes have changed somehow: it is as if the room was filled with gentle silver light.\n\n<<continue "She can see things in the darkness.">>She can see things in the darkness.\n\nCreatures of shadow and despair surround her, dust clotted and vicious. Their teeth are rusty saw-blades, their claws are old bent nails. There is a lifetime of evil in their snarling faces.\n\n<<continue "The forest bride snarls too, and leaps.">>The forest bride snarls too, and leaps.\n\nShe fights like a demon. She fights like a wolf. Her <<replace "fangs">>fangs (when did she get fangs?)<<endreplace>> tear shadows apart. Her <<replace "claws">>claws (when did she get claws?)<<endreplace>> rend old dust and cobwebs. \n\nThe last creature is tough; a dragon of timeless cruelty and old pain. \n\nBut, bruised and bloodied, the forest bride rips out its throat.\n\n[[In its death throes, it crashes into a support column.|powerless]]\n
The forest bride examines the stone head - all it has for an ear is a tiny hole. She takes the battered ear trumpet from her bag; it fits neatly into the hole. \n\n<<timedcontinue 3s>>The stone tilts her head, turning her ear to catch the sounds of the forest. The music swells around the stones. Moisture gathers at the corner of the stone eye.\n\n<<set $rightst = 1 >>\s\n<<if $rightst + $leftst eq 2 >>\s\n<<display "Stones Done">>\n<<endif>>\nThe forest bride steps [[back|Standing Stones]].\n
The forest bride has been married for <<print $year>> years, and has resolved <<print $mill + $lake + $orchard + $glade + $stones>> out of 5 areas.\n\nAre you sure you want to undo this good work?\n\n[[Yes, reset me already!]]\n[[No, I just wanna go home|Home]]\n
The forest bride wondered about trading the <<cyclinglink $offer "feather" "stone" "tooth">> for a <<cyclinglink $for "cobblestone" "trumpet" "chisel">>. \n \nShe wasn't sure it was a good deal, but decided to <<continue "make the offer.">>make the offer.\n<<display "Exchange">>\n\n<<if ($cobble + $chisel + $trumpet) gt 0>>Maybe she should ask for a [[refund]]? Or continue to [[haggle|The Stall]]? \s\n<<if ($cobble + $chisel + $trumpet) eq 3>>On the other hand, maybe she had what she [[needed]]? \s\n<<endif>>\s\n<<else>>\s\nThe forest bride felt there was more [[haggling|The Stall]] to be done.\n<<endif>>\s\n
<<set $up = $up + 1>><<goto "into the orchard">>
<<map 330 430>><<if $orchard eq 0>><html><IMG SRC="TFB_orchard0.png" id="pic"></html>\nThe forest bride doesn't come here often. She finds it boring. The [[Hidden Glade]] is --probably-- north-ish from here, and is much less dull. The [[Standing Stones]], at the end of the eastwards path, are likewise interesting. Even her [[cottage]] would be fascinating by comparison. \n\nUnlike the rest of the forest, the orchard is a tame and ordered place. Row upon row of apple trees, always in fruit, never too sweet or too sharp.\n\nThe forest bride walks [[into the orchard]].\n<<set $up = 5>><<set $left = 5>>\s\n<<else>>\s\n<html><IMG SRC="TFB_orchard1.gif" id="pic"></html>\nThe forest bride has learned to love the orchard; it's always sunny and always in fruit. She sits under apple trees, or dances around them. The apples are always delicious, and she always carries some back to her [[cottage]].\n\nA charming path runs north-ish towards the [[Hidden Glade]] or eastwards to the [[Standing Stones]]. <<endif>>
<html><div id="minimap"><img src="TFB_Map.png" id="themap"></div></html>\n\n[[Reset Progress|Reset]]
The forest bride takes out the fossil tooth and throws it into the water, watching it drop rapidly into the depths.\n\nSomething dark moved down there. \n\nAnd suddenly something huge is moving towards her. A <<replace "huge fish">>huge fish --as big as an oak tree--<<endreplace>> with a gaping mouth of hooked teeth barrels towards her.\n\nThe forest bride scrambles <<continue "backwards.">> <<map 440 70>>backwards. She turns and runs for [[home|Bad Back]].
Though old and time-worn, the stone retains a suggestion of a face; <<if $chisel eq 0>>closed eyes<<else>>[[closed eyes]]<<endif>>, small nose and <<replace "expressive mouth">>expressive mouth. Moving closer the forest bride hears <<replace "song">>song - a beautiful and haunting song, a song <<if $stones eq 0>>of unrequited love<<else>>of love<<endif>> sung in the language of stone<<endreplace>><<endreplace>>.\n\nThe forest bride steps [[back|Standing Stones]].
The goblin sighs, and says, "//Let me save you some time, cinnamon ears//". He pulls out a clipboard from beneath the stall, showing in to the bride.\n\nIt says:\n\n~~Commercially Sensitive Goblin Pricelist~~\nA trumpet: 1 x mouse skull + 4 x acorns\nA chisel: 1 x mouse skull\nA cobblestone: 1 x acorn\nA sea-worn stone: 1 x mouse skull + 6 x acorns\nA fossil-tooth: 1 x mouse skull + 2 x acorns\nA dark feather: 3 x acorns\n\nThe forest bride reads the list - she could still [[weigh something|silver scales]], but maybe it was time to cut a [[deal|The Stall]].\n
The forest bride walked through rows of boring trees. They were ... nice, she thought, but so dull. All exactly the same. Repeating without the slightest variation<<if $up eq 2 && $left eq 4>><<replace " ...">> ... although this one <<replace "...">>... this [[one tree]] had something about it... <<endreplace>><<endreplace>><<else>>.<<endif>>\n\nShe wondered if she was bored enough to just go [[home|Bad Back]].
<<map 225 100>><html><IMG SRC="TFB_glade1.gif" id="pic"></html>\n<<once>>The forest bride stumbles into the glade. <<endonce>>It is beautiful in here. \n\nAt the centre of the glade is a hot spring, bubbling up from the earth. The floor is soft emerald moss, and <<replace "bright flowers">>bright flowers --lilies, orchids and more--<<endreplace>> fill the air with musky scents.\n\nOverhead, the branches interlock, giving gentle shade and turning the afternoon light a dappled green. The glade is full of birdsong.\n\nThe trees are <<replace "in blossom">>always in blossom<<endreplace>> yet soft fruit also hangs from low branches.\n\nThe forest bride lies down on a bed of ferns, and eats the <<replace "fruit">>delicious fruit<<endreplace>>, and drinks the <<replace "water">>delicious water<<endreplace>>. \n\nShe tarries there until the first fireflies appear. Then, contentedly, she gathers her things and goes [[home|Interlude]].\n\n<<remember $glade = 1>>\n\n
<<map 470 0>>With a final desperate thrust, the sword of the forest bride finds the chink in the old pike's armour. \n\nThe ancient fish convulses sharply, and then dissolves, like ink in the water.\n\nThe forest bride drops the sword, and swims for the surface, frantic for air.\n\n<<timedcontinue 1s>>As she rises, the water around her clears. Gold and silver fish emerge from their hiding places. \n\n<<timedcontinue 1s>>[[She breaks the surface and gulps in welcome air.|lake]]
Though ancient and weathered, the stone retains a rough suggestion of a face; closed mouth, broad nose, <<if $chisel eq 0>>no ears<<else>>[[no ears]]<<endif>> to speak of, but <<replace "expressive eyes">>expressive eyes. Moving closer the forest bride's <<replace "vision swims">>vision swims. Images appear before her, a vivid dance of movement and colour. A dance <<if $stones eq 0>>of unrequited love<<else>>of love<<endif>> woven from the memories of stone<<endreplace>><<endreplace>>.\n\nThe forest bride steps [[back|Standing Stones]].
<<map 480 0>><html><IMG SRC="TFB_lake.gif" id="pic"></html>\nThe forest bride walks to the lake. The day is warm. Behind her a forest path leads south towards the [[Hidden Glade]] or [[home|cottage]], and the river runs east towards the [[Old Sawmill]].\n\nThe lake is placid, and reflects the sky like a mirror.\n\n<<if $lake>>The water as clear as glass, and <<replace "fish">>shining trout and glittering salmon<<endreplace>> lazily drift through it. Silver suspended in crystal.\n\n[[The water looks inviting|lake]].\s\n<<else>>But though the surface is still, the forest bride can see vast creatures moving beneath it. To get a better look, she walks out onto the narrow <<replace "dock.">>dock; from here, in the old days, the people who lived in the forest would make <<replace "offerings.">> - but what could the forest bride <<replace "offer?">>offer? She had only the [[feather|lake feather]], the [[stone|lake stone]] and the [[tooth|lake tooth]] in her bag.<<endreplace>><<endreplace>><<endreplace>>\n\nDark and monstrous shapes glide through the water. \n\nOverheated and dirty, the forest bride badly wants to <<replace "swim.">>swim -- maybe the monsters would leave her alone? Did she dare to [[try]]?<<endreplace>>\n<<endif>>
<html><IMG SRC="TFB_market.gif" id="pic"></html>\nThe market took place in a grotto formed of gnarled oaks and twisted thorns. The branches arch overhead, blocking out the light. Against the false darkness the goblins had hung lanterns filled with glowing fungus; green, blue, yellow.\n\nBetween the trees are a variety of <<cyclinglink "stalls" "stalls; a thorn-goblin offering a range of hilt-less daggers" "stalls; a crow-goblin selling figures made of twisted paper" "stalls; a table of broken eggshells sorted by colour" "stalls; a hobgoblin offering imaginary words tied up with twine" "stalls; but as the forest bride looks, the goblins avoid her eyes, or close up shop, or place a cloth over the merchandise. All save one.." end>>.\n\nBetween two massive oaks is a stall presided over by some sort of typewriter-mantis-goblin; all chitin and brass keys. [[He beckons the forest bride over|The Stall]].
The forest bride plunges the sword into the eel's yellow eye, and feels the monster shudder and dissolve into inky water.\n\nShe's going to need to come up for air soon, but green tentacles are already reaching for her from the depths.\n\n<<continue "...">><<map 0 340>>[[The|strike]] [[second|strike]] [[monster|strike]] [[is|strike]] [[a|strike]] [[kraken,|strike]] [[as|strike]] [[wide|strike]] [[as|strike]] [[the|strike]] [[bride's|strike]] [[cottage,|strike]] [[with|strike]] [[pale|strike]] [[eyes|strike]] [[and|strike]] [[sinewy|strike]] [[tentacles.|strike]] [[It|strike]] [[grabs|strike]] [[the|strike]] [[bride|strike]] [[and|strike]] [[pulls|strike]] [[her|strike]] [[down|strike]] [[towards|strike]] [[its|strike]] [[terrible|strike]] [[hooked|strike]] [[beak.|octo miss]]
[[by Zen Benjamin|Credits]]
<html><IMG SRC="TFB_cottage_morning.png" id="pic"></html> \n<<map 500 200>><<if $first eq 'tooth'>>\s\nA wolf sits on the doorstep, as if waiting for her. It runs to the centre of the clearing and howls, before leaping away into the forest.\n<<print $s>>\n<<else if $first eq 'feather'>>\s\nThe forest bride ducks through the cottage door. A solitary raven regards her from a tall pine.\n<<print $s>>\n<<else if $first eq 'stone'>>\s\nThe forest bride emerges to find a big brown bear looking at her across the clearing. She is unafraid. The bear nods, turns and disappears into the woods.\n<<print $s>>\n<<else if $first eq 'none'>>The forest bride scoops up the gifts and goes outside. The forest is quiet today.\n<<print $s>>\n<<endif>>\nThe bride's <<replace "cottage">> pretty and well kempt cottage<<endreplace>> stands at the edge of a <<replace "clearing">>clearing (for the forest keeps its distance here)<<endreplace>>. In the centre of the clearing is a well where five paths meet. \n\nThe forest bride knows these paths, widdershins from the east:\n- the first path leads to the [[Old Sawmill|To Sawmill]]. <<if $mill >>Small white flowers grow beside this path.<<endif>>\n- the second path goes north-west to the [[Silver Lake]]. <<if $lake >>Blue flowers grow beside this path.<<endif>>\n- the third path goes, more or less, to the [[Hidden Glade]], or thereabouts. <<if $glade >>Large red flowers grow beside this path.<<endif>>\n- the fourth path takes one south-west to the [[Orchard]]. <<if $orchard >>Pale yellow flowers grow beside this path.<<endif>>\n- the final path leads to the ancient [[Standing Stones]]. <<if $stones >>Orange flowers grow beside this path.<<endif>>\n<<map 500 200>>\n<<set $first = 'nuh'>>
The goblin scoops up \s\n<<if $weigh eq "the stone">>a mouse skull and six acorns\s\n<<else if $weigh eq "the tooth">>a mouse skull and two acorns\s\n<<else if $weigh eq "the feather">>three acorns\s\n<<else if $weigh eq "a trumpet">>a mouse skull and four acorns\s\n<<else if $weigh eq "a chisel">>a mouse skull\s\n<<else if $weigh eq "a mouse skull">>seven acorns\s\n<<else>> a single acorn\s\n<<endif>>\s\n and dumps them in the other pan. They balance perfectly.\n\n"//Okay?//" said the goblin, "//Can we [[trade|The Stall]], or are you still [[fascinated by the concept of weight|weigh again]]?//"
<<map 500 200>><html><IMG SRC="TFB_cottage_night.png" id="pic"></html>\nIt's already dusk when the forest bride gets back to her cottage in the clearing. <<replace "No lights are on.">>No lights are on - why would there be?<<endreplace>> The forest seems to be holding its breath. The forest bride is tired. She goes [[inside|Interlude]].
<<map 240 130>><html><IMG SRC="TFB_outwith_glade_M.png" id="pic"></html>\n<<if $glade>>The path from the [[cottage]] winds all the way to just outside the [[Hidden Glade|Glade]]. A little way back, a crossroads offers paths to the [[Orchard]] or the [[Silver Lake]] instead. <<else>>The long <<replace "path">>path from the [[cottage|Bad Back]]<<endreplace>> does not quite get to the hidden glade, but trails off into brambles instead. (A little way back, a crossroads apologetically offered paths to the [[Orchard]] or the [[Silver Lake]] instead).<<endif>>\n\nThe forest bride can see the glade though, a sunlit patch between tall pines. She can hear birds singing, and thinks she can see bright flowers.\n\n<<once>>It ought to be easy enough to get to. <<endonce>>A deer track runs to the [[left]] towards the glade, or to the [[right]] the undergrowth looks thinner.\n\n<<set $i = 0; $imin = -1>>\s\n<<timedcontinue 180s>>[[Eventually, a path opens up towards the glade|Glade]].
The forest bride takes up the sword, takes a deep breath, and dives into the water.\n\n<<continue "...">><<map 0 217>>[[The|strike]] [[first|strike]] [[monster|strike]] [[is|strike]] [[an|strike]] [[old|strike]] [[eel,|strike]] [[as|strike]] [[long|strike]] [[as|strike]] [[the|strike]] [[bride's|strike]] [[cottage,|strike]] [[bristling|strike]] [[with|strike]] [[teeth|strike]] [[and|strike]] [[barbs,|strike]] [[an|strike]] [[evil|strike]] [[yellow|strike]] [[eye|fail eel]] [[fixed|strike]] [[upon|strike]] [[the|strike]] [[bride|strike]] [[as|strike]] [[it|strike]] [[rushed|strike]] [[in|strike]] [[to|strike]] [[consume|strike]] [[her.|strike]]
<html><IMG SRC="TFB_gifts_stone.gif" id="pic"></html>\nThe forest bride picks up the stone. \n\nIt is warm to the touch, sea-worn and sea-rounded. The forest bride <<replace "had used to love the sea" >>loved the sea, but had to leave it when she married<<endreplace>>.\n\nWarm and gentle feelings lap around her now; soft, sunlit and generous. But time is getting on.\n\nThe forest bride picks up the [[feather]], the stone and the [[tooth]], and puts them in her little bag. She leaves [[her cottage|cottage]].\n\n<<if $first eq "none">>\n<<set $first = "stone">>\n<<endif>>
<<if $dest eq "going inside, nonetheless">><<display "Mill Ante-room">>\n<<else if $dest eq "following the river towards the Silver Lake">><<map 650 0>>Picking her way carefully around the mill, the forest bride walks along the side of the river, up towards the [[Silver Lake]].\n<<else if $dest eq "taking the narrow path down towards the Standing Stones">><<map 750 270>>Turning her back on the old mill, the forest bride finds the narrow woodland trail that tracks towards the [[Standing Stones]].\n<<else>><<map 700 130>>The forest bride scowls and heads for [[home|cottage]].<<endif>>
<<if $dest eq "home">>The forest bride leaves the Stones and heads [[home|Interlude]].\n<<else if $dest eq "westwards towards the Orchard">><<map 500 420>>The forest bride wanders westwards towards the [[Orchard]].\n<<else>><<map 750 270>>The forest bride hikes up the narrow woodland trail that leads towards the [[Old Sawmill]].<<endif>>
<<map 205 70>><html><IMG SRC="TFB_glade_lost.png" id="pic"></html>\nThe forest bride finds herself lost in the woods, the glade still some way off.\n<<set $i += 1>>\n<<if $i eq 0>>Her [[bag]] knocks against her hip.\s \n<<else if $i eq 1>>The forest is cool and shaded. An owl watches from a nearby tree.\s\n<<else if $i eq 2>>A nearby deer regards the bride blankly.\s <<set $i = $imin>><<endif>>\n\nThe forest bride considers heading [[home|Bad Back]]; but both the [[right]] and [[left]] paths look fairly promising.\n\n<<timedcontinue 30s>>[[Eventually, a path opens up towards the glade|Glade]].
<<map 700 400>><<if $stones eq 0>><html><IMG SRC="TFB_standingstones0.png" id="pic"></html><<else>><html><IMG SRC="TFB_standingstones1.gif" id="pic"></html><<endif>>\nThe Standing Stones rest atop a small <<replace "hill">><<replace "earthworks">>burial mound<<endreplace>><<endreplace>> in the oldest part of the forest.<<if $stones eq 1>><<print $s>>The two stones are surrounded by swirls of bright warm light, and wrapped in bright music. This is the ancient language of stones, the bride knows, before most of them forgot how to speak.\n<<else>><<print $s>> The place has a sombre atmosphere.\s\n<<if leftst = 0>><<print $s>> There is a distant sound of a mournful song and \s\n<<else>><<print $s>> The air is full of ancient song, powerful and sad, and \s<<endif>>\s\n<<if rightst = 0>><<print $s>> muted light plays over the stones.\s\n<<else>><<print $s>> pale colour and wan light plays over the stones.<<endif>><<endif>>\n\nA narrow path leads back into the woods; the forest bride could go <<cyclinglink $dest "home" "westwards towards the Orchard" "northwards to the Old Sawmill">> if she [[chose to|From the Stones]].\n\n<<if $stones eq 0>>Both stone uprights are vaguely humanoid in outline. The stone is grey and lichen covered, encircled with faint carved lines tracing out <<replace "rough features.">>rough features. The stone on the [[left|Left Stone]] has a well-defined mouth, and the one on the [[right|Right Stone]] has clearly formed eyes.\n<<endreplace>><<endif>>\n\n<<if $chisel + $stones eq 0>>Partway up the slope is a <<replace "small circle of toadstools">>[[fairy circle]]<<endreplace>>. <<endif>> <<endif>>\n\n\n\n\n\n\n\n
Stepping into the fairy circle the forest bride finds herself transported...<<timedcontinue 2s>> to the Goblin Market, deep in the wildwood.<<map 600 70>>\n\n[[The forest bride looks around|Market]]\n\n\n\n
The forest bride pulls out the stone. \n\nShe hears branches snapping behind her.\n\n<<continue "The bride turns to see a huge brown bear emerge from the forest.">>The bride turns to see a huge brown bear emerge from the forest.\n\n"//Good day, Sister-in-Law//" says the bear in a friendly voice, "//I hope you are well//".\n\nThe forest bride replies that she is, but that she is having trouble getting to the Hidden Glade.\n\n"//Oh dearheart, it's clear you are not a hunter,//" says the bear, "//Some prey, like that glade, are hard to catch. Nervous, quick to run, good at hiding".\n\n"To catch such prey, one need to use the hunter's greatest tool...//".\n\n<<continue "The forest bride waited.">>The forest bride waits.\n\n"//Patience, dearheart.//" said the bear, and ambles back up the [[path|lost]]. \n\n<<set $imin = 0>>\s\n<<timedcontinue 10s>>[[Eventually, a path opens up towards the glade|Glade]].\n\n
The forest bride takes the chisel from her bag, and hefts the cobblestone to serve as a hammer. Haltingly she chips a rough circle in the centre of each stone eyelid.\n\nThe forest bride stands back, surveying her work. \n\n<<timedcontinue 3s>>The stone looks at the bride, and then around her. Light plays around the stones, colours and images. Moisture gathers at the corner of the stone eye.\n\nThe forest bride steps [[back|Standing Stones]].\n<<set $leftst = 1 >>\n
Lanterns hang above the stall, along with some faded banners, a dead pheasant, a string of mouse skulls, bags of acorns, and a set of [[silver scales]]. Also a "//<<replace "No Credit.">>No Credit. <<replace "No Change Given.">>No Change Given. <<replace "Now Stop Reading Me!">>Now Stop Reading Me! Also, note goblin merchandise may turn to dust without warning.<<endreplace>><<endreplace>><<endreplace>>//" sign.\n\n<<once>>"//Hello sweetmeat,//" says the goblin, keys clattering, "//I have some pretty things you might <<replace "need">>need. Your husband's a bit of a jerk, isn't he? Got you running around. But we can do a deal, I'm sure<<endreplace>>.//"\n\nThe stall is actually rather ... niche, notices the bride, in that it appears to stock only three sorts of things: cobblestones, ear trumpets and chisels. There are a lot of different types of each though, so kudos for that, she thought.\n\n"//I see your <<replace "husband">>good for nothing husband<<endreplace>> left you some pointless gifts,//" said the goblin, <<endonce>>"//Want to trade?//"\n\n<<display "Inventory">>\n\n<<display "Deal">>\n\n\n\n
<html><IMG SRC="TFB_gifts_tooth.gif" id="pic"></html>\nThe forest bride picks up the fossil tooth. \n\nShe wonders what animal it had belonged too; something fierce, she thought. Even fossilised it seemed lively and primal.\n\nThe forest bride feels a restlessness come upon her; an urge to <<replace "run">><<replace "run and bite">><<replace "leap, run and bite">>leap, run, chase and <<replace "bite">>bite. The forest bride's mouth waters<<endreplace>><<endreplace>><<endreplace>><<endreplace>>.\n\nThe forest bride picks up the [[feather]], the [[stone]] and the tooth, and puts them in her little bag. She leaves [[her cottage|cottage]].\n\n<<if $first eq "none">>\n<<set $first = "tooth">>\n<<endif>>
<<map 470 0>>Leaving her clothes in a neat bundle, the forest bride lowers herself off the dock into the water. It's pleasantly cold.\n\nThe forest bride keeps one hand on the rough wood of the dock, and watches the lake monsters. <<timedreplace 7s>>They do not appear to have noticed her. <<replacewith>>At first, they do not appear to have noticed her, but after a moment they turn.<<endtimedreplace>>\n\nThe bride sees something like a huge spiny eel, something with tentacles, and some sort of ancient toothy fish.\n\n<<timedcontinue 15s>>And now they come for her. Snapping and biting.\n\n<<continue "The forest bride scrambles back up onto the dock.">> The forest bride scrambles back up onto the dock. Tentacles grasp after her, and the forest bride <<continue "runs.">>runs.\n<<map 440 70>>\nShivering and tired, the bride goes [[home|Bad Back]].
The forest bride reaches into her bag, touching the <<cyclinglink $choice "feather" "stone" "tooth">>. \n\n[[She pulls it out|Glade Choice]].
The forest bride pulls out the fossil tooth. \n\nShe hears the soft rustle of underbrush behind here.\n\n<<continue "The bride turns to see a huge grey wolf emerge from the forest.">>The bride turns to see a huge grey wolf emerge from the forest.\n\n"//Ha, //" chuckles the wolf, "//That's a tricksy glade isn't it, sweetie?//".\n\nThe forest bride agrees.\n\n"//You are no hunter, Sister-in-Law,//" says the wolf, in an amused tone, "//So you may not know that some things are easily spooked. Shy. Flighty//".\n\n<<continue "The forest bride nods.">>The forest bride nods.\n\n"//You must be direct, oh toothsome one. But not everything can simply be chased. For nervous prey, you must also time things perfectly,//" continues the wolf, "//When you see your prey relax, or its attention wanders, then is the time to dash forward. Then wait again.//" \n\n<<set $imin = 0>>[[The forest bride considers this advice.|leap]]
<<if $left + $up eq 10>>The forest bride stood at the entrance to the orchard, thinking about [[leaving|Orchard]]. The orchard spread out before her, row after regimented row.<<else>><<display "trees">><<endif>>\n\nShe considered directions: <<if $up lt 5>>[[north]]<<endif>> <<if $left lt 5>>[[east]]<<endif>> <<if $up gt 1>>[[south]]<<endif>> <<if $left gt 1>>[[west]]<<endif>>\n\n<<if $left eq 5>>\n<<if $up eq 5>><<map 330 430>><<endif>>\s\n<<if $up eq 4>><<map 330 445>><<endif>>\s\n<<if $up eq 3>><<map 330 460>><<endif>>\s\n<<if $up eq 2>><<map 330 475>><<endif>>\s\n<<if $up eq 1>><<map 330 490>><<endif>>\s\n<<endif>>\s\n<<if $left eq 4>>\n<<if $up eq 5>><<map 315 430>><<endif>>\s\n<<if $up eq 4>><<map 315 445>><<endif>>\s\n<<if $up eq 3>><<map 315 460>><<endif>>\s\n<<if $up eq 2>><<map 315 475>><<endif>>\s\n<<if $up eq 1>><<map 315 490>><<endif>>\s\n<<endif>>\s\n<<if $left eq 3>>\n<<if $up eq 5>><<map 300 430>><<endif>>\s\n<<if $up eq 4>><<map 300 445>><<endif>>\s\n<<if $up eq 3>><<map 300 460>><<endif>>\s\n<<if $up eq 2>><<map 300 475>><<endif>>\s\n<<if $up eq 1>><<map 300 490>><<endif>>\s\n<<endif>>\s\n<<if $left eq 2>>\n<<if $up eq 5>><<map 285 430>><<endif>>\s\n<<if $up eq 4>><<map 285 445>><<endif>>\s\n<<if $up eq 3>><<map 285 460>><<endif>>\s\n<<if $up eq 2>><<map 285 475>><<endif>>\s\n<<if $up eq 1>><<map 285 490>><<endif>>\s\n<<endif>>\s\n<<if $left eq 1>>\n<<if $up eq 5>><<map 270 430>><<endif>>\s\n<<if $up eq 4>><<map 270 445>><<endif>>\s\n<<if $up eq 3>><<map 270 460>><<endif>>\s\n<<if $up eq 2>><<map 270 475>><<endif>>\s\n<<if $up eq 1>><<map 270 490>><<endif>>\s\n<<endif>>\s
Reaching for the silver scales, the forest bride puts <<cyclinglink $weigh "the feather" "the stone" "the tooth" "a cobblestone" "a trumpet" "a chisel" "a mouse skull">> on one of the pans, and [[looks at the goblin|Weigh]].
<html><IMG SRC="TFB_homecoming.gif" id="pic"></html>\nArriving back at the clearing, the forest bride finds lanterns hanging from the trees, and warm light spilling from the cottage windows. Smoke drifts up from the chimney.\n\n<<if $won>>\s\n[[She goes inside|Interlude]]\n<<else>>\s\nFrom the edge of the wood, a great bear, a huge wolf and a fat raven watch as the forest bride goes to greet her husband.\n\n<html><p style="text-align:center;">The End</p></html>\n\n[[(Credits)|Credits]]\n[[(Back Home)|cottage]]\n<<remember $won = 1>>\n<<endif>>\s
<html><IMG SRC="TFB_gifts_all.png" id="pic"></html>\n<<if $year eq 1>>After she had been married for a year, the forest bride awakes one morning to find three gifts on the shelf above the hearth.\n\nThe gifts are: <<display "Gifts">>\n<<else if $year eq 2>>On her second anniversary, the forest bride awakes again to find three gifts on the shelf above the hearth.\n\nOnce again, the gifts are: <<display "Gifts">>\n<<else if $year eq 3>>\s\nOn her third anniversary, the forest bride awakes again to find three gifts on the shelf above the hearth.\n\nUnsurprisingly, the gifts are: <<display "Gifts">>\n<<else if $year eq 4>>\s\nOn her fourth anniversary, the forest bride awakes again to find three gifts on the shelf above the hearth: <<display "Gifts">>\n<<else if $year eq 5>>\s\nOn her fifth anniversary, the forest bride awakes again to find the three gifts on the shelf above the hearth: [[a dark feather|feather]], [[a pale stone with sea-worn hole|stone]], and [[a fossil tooth, curved, carnivorous|tooth]].\n<<else>>\s\nOn the next anniversary (number <<print $year>>, if she counted aright), the forest bride is unsurprised to find three gifts on the shelf above the hearth. [[Feather|feather]], [[stone]] and [[tooth]], as she expected.\n<<endif>>\n\nThe morning sun shines through the cottage windows; [[the forest beckons|cottage]].\n<<map 500 200>>\n<<set $stone = 1>><<set $feather = 1>><<set $tooth = 1>>\n<<set $cobble = 0>><<set $chisel = 0>><<set $trumpet = 0>>\n<<set $leftst = 0>><<set $rightst = 0>>\n<<remember $s = " ">>
<<set $temp_for = $for >>\n<<if $offer eq "stone">>\s\n<<if $stone neq 1>>"//You traded away your magic rock, remember?//" says the goblin, smugly.<<set $for = "n/a">><<else>><<set $stone = 0>><<endif>>\s\n<<if $for eq "trumpet">>\s\n"//Very well, //" says the goblin, handing the forest bride a battered ear-trumpet, "//Use it wisely.//"<<set $trumpet += 1>>\s\n<<else if $for eq "chisel">>\s\n"//You drive a hard bargain, //" says the goblin, passing across a rusty chisel.<<set $chisel += 1>>\s\n<<else if $for eq "cobblestone">>\s\n"//You want to trade a little stone for a big stone?//" says the goblin, "//Very well.//"<<set $cobble+= 1>>\s\n<<endif>>\s\n<<else if $offer eq "tooth">>\s\n<<if $tooth neq 1>>"//You're all out of teeth,//" grins the goblin.<<set $for = "n/a">><<endif>>\s\n<<if $for eq "trumpet">>\s\n"//No deal," says the goblin, "Some of those are antiques!//"\s\n<<else if $for eq "chisel">>\s\n"//Okay honeygizzards,//" says the goblin, selecting a rusty chisel for the bride, "//That will come in handy against robot vampires.//"<<set $chisel += 1>><<set $tooth = 0>>\s\n<<else if $for eq "cobblestone">>\s\n"//Cutting my own throat,//" says the goblin, "//But go on then.//"<<set $tooth = 0>><<set $cobble+= 1>>\s\n<<endif>>\s\n<<else if $offer eq "feather">>\s\n<<if $feather neq 1>>"//You swapped the feather already,//" sighs the goblin.<<set $for = "n/a">><<endif>>\s\n<<if $for eq "trumpet">>\s\n"//Do you think I was born yesterday, sugar-ears?//" says the goblin, "//No deal.//"\s\n<<else if $for eq "chisel">>\s\n"//A lovely sharp chisel for a mangy old feather?//" says the goblin, "//Jog on.//"\s\n<<else if $for eq "cobblestone">>\s\n"//I suppose I can do that,//" said the goblin, passing across a cobblestone, "//But only because you look delicious.//"<<set $cobble += 1>><<set $feather = 0>>\s\n<<endif>>\s\n<<endif>>\s\n<<set $for = $temp_for >>\s\n
<<map 750 60>>The forest bride pulls the feather from her bag. \n\n<<continue "It bursts into a cold flame, blinding blue.">>It bursts into a cold flame, blinding blue.\n\nShadow <<replace "creatures">>creatures --things of pain and darkness--<<endreplace>> hiss and draw back, hiding beneath tables and behind broken down machines.\n\nThe largest such creature snarls and snaps at her; it looks like an ancient boar, scarred and malevolent. \n\n<<continue "The forest bride holds the feather up">>The forest bride holds the feather up.\n\nEverything gets brighter and colder. The air crackles with ice, frost riming rusted metal teeth.\n\nThe creature cowers, whimpers, seems to shrink in the cold light. \n\nYes, thinks the forest bride, <<replace "you are old">>you are old, but you are also <<replace "withered">>withered and [[powerless]]<<endreplace>><<endreplace>>. \n\n
<<set $up = $up - 1>><<goto "into the orchard">>
<<map 180 110>><html><IMG SRC="TFB_outwith_glade_R.png" id="pic"></html>\nThe forest bride follows the deer track on its winding course.\n\nShe's sure the hidden glade was just around the [[next bend.|lost]]\n\n<<timedcontinue 30s>>[[Eventually, a path opens up towards the glade|Glade]].