Yulia stops short.\n* Directly in front of her is [[a pale stone arch.|frame]]\n* To the left [[...her bedroom door?|six]]\n* To the right, [[a wind blows icily.|approaches]]
A crowded street, stalls of wares; spices, cloth, food, jewelry, shadows.\n\nThe shadows under a corner tent draw her in like the eyes of the woman there. The woman shows her a chalky cube. She draws on the hard ground, two concentric circles, and nods.\n\n"You walk through portals." The woman hands her the block of chalk.\n* Yulia [[nods]].\n* Unnerved, Yulia turns [[away]].
The way her dad said ceremony gives her the creeps. \n\nShe isn't home yet. Before her dad comes back, Yulia slips out the window.\n\nThere's a passage nearby. She can feel it.\n\n<<display "end">>
Yulia dashes back through the crowd and goes straight for the portal that [[she spied earlier|five]].
Her bedroom, messy as ever. <<if visited("approaches")>>\n\nYulia almost cries seeing it. She stays curled up on her side, breathing the stale smell of the dirty laundry covering her floor.\n\n<<endif>>Her dad opens the door. "I heard something. You okay?"\n\nYulia looks at him, day-old scruff and eyes crinkled from a crooked grin.\n\n"I can't even tell, the way you keep your room. Get ready -- ceremony time!" He sounds chipper but turns away quickly. Yulia doesn't know what he's talking about. What ceremony?\n\nThe ring glows faintly. There might be a portal nearby. \n* She goes to [[look for it]].\n* She [[stays]].
Creeping closer, Yulia sees a rounded arch of cracked stones. She could squeeze through, but the air chills her fingers.\n\n"Only you, with your--" the woman points at the ring. "I knew you came, because it lit up." The woman smiles wickedly and grabs at Yulia's hand.\n* Yulia [[runs through the crowd.|away]]\n* Yulia [[pushes through.|approaches]]
(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:2};var nullobj={handler:function(){}};function showVer(n,notrans){if(!n){return\n}n.innerHTML="";new Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");n.style.display="inline";n.classList.remove("revision-span-out");\nif(!notrans){n.classList.add("revision-span-in");if(n.timeout){clearTimeout(n.timeout)}n.timeout=setTimeout(function(){n.classList.remove("revision-span-in");\nn=null},1)}}function hideVer(n,notrans){if(!n){return}n.setAttribute("data-enabled","false");n.classList.remove("revision-span-in");\nif(n.timeout){clearTimeout(n.timeout)}if(!notrans){n.classList.add("revision-span-out");n.timeout=setTimeout(function(){if(n.getAttribute("data-enabled")=="false"){n.classList.remove("revision-span-out");\nn.style.display="none";n.innerHTML=""}n=null},1000)}else{n.style.display="none";n.innerHTML="";n=null}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c="",tg,a,i;\nfunction tagfound(i,e){for(var j=0;j<e.length;j++){if(a.indexOf("<<"+e[j],i)==i){return e[j]}}}a=b.source.slice(k);for(i=0;\ni<a.length;i++){if(tg=tagfound(i,starttags)){l++}else{if((tg=tagfound(i,desttags))&&l==0){b.nextMatch=k+i+tg.length+4;return[c,tg]\n}else{if(tg=tagfound(i,endtags)){l--;if(l<0){return null}}}}c+=a.charAt(i)}return null}var begintags=[];var endtags=[];function revisionSpanHandler(g,e,f,b){var k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length,becomes,c,cn,m,h,vsn;\nfunction mkspan(vtype){h=insertElement(m,"span",null,"revision-span "+vtype);h.setAttribute("data-enabled",false);h.style.display="none";\nh.tweecode="";return h}if(this.shorthand&&flen){while(f.length>0){vsns.push([f.shift(),(this.flavour=="insert"?"gains":"becomes")])\n}}else{if(this.flavour=="insert"||(this.flavour=="continue"&&this.trigger=="time")){vsns.push(["","becomes"])}}if(this.flavour=="continue"&&flen){b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),vtype])}else{becomes=["becomes","gains"];c=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);\nif(c&&endtags.indexOf(c[1])==-1){while(c){vsns.push(c);c=tagcontents(b,begintags,becomes,endtags,b.nextMatch)}c=tagcontents(b,begintags,["end"+e],endtags,b.nextMatch)\n}if(!c){throwError(g,"can't find matching end"+e);return}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),""])}}if(this.flavour=="remove"){vsns.push(["","becomes"])}cn=0;m=insertElement(g,"span",null,e);\nm.setAttribute("data-flavour",this.flavour);h=mkspan("initial");vsn=vsns.shift();h.tweecode=vsn[0];showVer(h,true);while(vsns.length>0){if(vsn){vtype=vsn[1]\n}vsn=vsns.shift();h=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup=="function"){this.setup(m,g,f)}}function quantity(m){return(m.children.length-1)+(m.getAttribute("data-flavour")=="remove")\n}function revisionSetup(m,g,f){m.className+=" "+f[0].replace(" ","_")}function keySetup(m,g,f){var fl=this.flavour,key=f[0];\nm.setEventListener("keydown",function l(e){var done=!revise("revise",m);if(done){m.removeEventListener("keydown",l)}})}function timeSetup(m,g,f){function 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(g,s+" isn't a CSS time unit");\nreturn 0}var fl=this.flavour;var tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise("revise",m);if(!done){setTimeout(timefn,tm)\n}},tm)}function hoverSetup(m){var fn,noMouseEnter=(document.head.onmouseenter!==null);m.onmouseenter=function(){revise("revise",this)\n};m.onmouseleave=function(){revise("revert",this)};if(noMouseEnter){fn=function(n){return function(e){if(!event.relatedTarget||(event.relatedTarget!=this&&!(this.compareDocumentPosition(event.relatedTarget)&Node.DOCUMENT_POSITION_CONTAINED_BY))){this[n]()\n}}};m.onmouseover=fn("onmouseenter");m.onmouseout=fn("onmouseleave")}m=null}function mouseSetup(m){var fl=this.flavour,evt=(document.head.onmouseenter===null?"onmouseenter":"onmouseover");\nm[evt]=function(){var done=!revise("revise",this);if(done){this[evt]=null}};m=null}function linkSetup(m,g,f){var fl=this.flavour,l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className="internalLink replaceLink";p.insertBefore(l,m);l.insertBefore(m,null);l.onclick=function(){var p,done=false;if(m&&m.parentNode==this){done=!revise("revise",m);\nscrollWindowTo(m)}if(done){this.parentNode.insertBefore(m,this);this.parentNode.removeChild(this)}};l=null}function visitedSetup(m,g,f){var i,done,shv=state.history[0].variables,os="once seen",d=(m.firstChild&&(this.flavour=="insert"?m.firstChild.nextSibling:m.firstChild).tweecode);\nshv[os]=shv[os]||{};if(d&&!shv[os].hasOwnProperty(d)){shv[os][d]=1}else{for(i=shv[os][d];i>0&&!done;i--){done=!revise("revise",m,true)\n}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1}}}[{name:"insert",flavour:"insert",trigger:"link",setup:linkSetup},{name:"timedinsert",flavour:"insert",trigger:"time",setup:timeSetup},{name:"insertion",flavour:"insert",trigger:"revisemacro",setup:revisionSetup},{name:"later",flavour:"insert",trigger:"visited",setup:visitedSetup},{name:"keyinsert",flavour:"insert",trigger:"key",setup:keySetup},{name:"replace",flavour:"replace",trigger:"link",setup:linkSetup},{name:"timedreplace",flavour:"replace",trigger:"time",setup:timeSetup},{name:"mousereplace",flavour:"replace",trigger:"mouse",setup:mouseSetup},{name:"hoverreplace",flavour:"replace",trigger:"hover",setup:hoverSetup},{name:"revision",flavour:"replace",trigger:"revisemacro",setup:revisionSetup},{name:"keyreplace",flavour:"replace",trigger:"key",setup:keySetup},{name:"timedremove",flavour:"remove",trigger:"time",setup:timeSetup},{name:"mouseremove",flavour:"remove",trigger:"mouse",setup:mouseSetup},{name:"hoverremove",flavour:"remove",trigger:"hover",setup:hoverSetup},{name:"removal",flavour:"remove",trigger:"revisemacro",setup:revisionSetup},{name:"once",flavour:"remove",trigger:"visited",setup:visitedSetup},{name:"keyremove",flavour:"remove",trigger:"key",setup:keySetup},{name:"continue",flavour:"continue",trigger:"link",setup:linkSetup},{name:"timedcontinue",flavour:"continue",trigger:"time",setup:timeSetup},{name:"mousecontinue",flavour:"continue",trigger:"mouse",setup:mouseSetup},{name:"keycontinue",flavour:"continue",trigger:"key",setup:keySetup},{name:"cycle",flavour:"cycle",trigger:"revisemacro",setup:revisionSetup},{name:"mousecycle",flavour:"cycle",trigger:"mouse",setup:mouseSetup},{name:"timedcycle",flavour:"cycle",trigger:"time",setup:timeSetup},{name:"keycycle",flavour:"replace",trigger:"key",setup:keySetup}].forEach(function(e){e.handler=revisionSpanHandler;\ne.shorthand=(["link","mouse","hover"].indexOf(e.trigger)>-1);macros[e.name]=e;macros["end"+e.name]=nullobj;begintags.push(e.name);\nendtags.push("end"+e.name)});function insideDepartingSpan(elem){var r=elem.parentNode;while(!r.classList.contains("passage")){if(r.classList.contains("revision-span-out")){return true\n}r=r.parentNode}}function reviseAll(rt,rname){var rall=document.querySelectorAll(".passage ."+rname),ret=false;for(var i=0;\ni<rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret}}return ret}function revise(rt,r,notrans){var ind2,curr,next,ind=-1,rev=(rt=="revert"),rnd=(rt.indexOf("random")>-1),fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc=(fl=="cycle"),rcl=rc.length-1;\nfunction doToGainerSpans(n,fn){for(var k=n-1;k>=0;k--){if(rc[k+1].classList.contains("gains")){fn(rc[k],notrans)}else{break\n}}}for(var k=0;k<=rcl;k++){if(rc[k].getAttribute("data-enabled")=="true"){ind=k}}if(rev){ind-=1}curr=(ind>=0?rc[ind]:(cyc?rc[rcl]:null));\nind2=ind;if(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl}next=((ind2<rcl)?rc[ind2+1]:(cyc?rc[0]:null));var docurr=(rev?showVer:hideVer);\nvar donext=(rev?hideVer:showVer);var currfn=function(){if(!(next&&next.classList.contains("gains"))||rnd){docurr(curr,notrans);\ndoToGainerSpans(ind,docurr,notrans)}};var nextfn=function(){donext(next,notrans);if(rnd){doToGainerSpans(ind2+1,donext,notrans)\n}};if(!rev){currfn();nextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind>0):(ind2<rcl-1)))}macros.revert=macros.revise=macros.randomise=macros.randomize={handler:function(a,b,c){var l,rev,rname;\nfunction disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"}function updateLink(l){if(l.className.indexOf("random")>-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(".passage ."+rname),cannext,canprev,i,ind,r,fl;for(i=0;i<rall.length;i++){r=rall[i],fl=r.getAttribute("data-flavour");\nif(insideDepartingSpan(r)){continue}if(fl=="cycle"){cannext=canprev=true}else{if(r.firstChild.getAttribute("data-enabled")==!1+""){canprev=true\n}if(r.lastChild.getAttribute("data-enabled")==!1+""){cannext=true}}}var can=(l.classList.contains("revert")?canprev:cannext);\n(can?enableLink:disableLink)(l)}function toggleText(w){w.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}var rl="reviseLink";if(c.length<2){throwError(a,b+" macro needs 2 parameters");\nreturn}rname=c.shift().replace(" ","_");l=Wikifier.createInternalLink(a,null);l.className="internalLink "+rl+" "+rl+"_"+rname+" "+b;\nvar v="";var end=false;var out=false;if(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);c.shift()}switch(c[c.length-1]){case"end":end=true;\nc.pop();break;case"out":out=true;c.pop();break}var h=state.history[0].variables;for(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,rl+((on)?"En":"Dis")+"abled");if(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);var t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length,n,lall,i;\nif((end||out)&&u==m-(end?2:1)){if(end){n=this.removeChild(t[u+1]);n.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}}else{toggleText(t[u]);u=(u+1)%m;if(v){h[v]=c[u]}toggleText(t[u]);this.setAttribute("data-cycle",u)\n}lall=document.getElementsByClassName(rl+"_"+rname);for(i=0;i<lall.length;i++){updateLink(lall[i])}};l=null}};macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["end"+b],evt=(window.onmouseenter===null?"onmouseenter":"onmouseover"),t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);\nif(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);\nif(b!="hoverrevise"&&done){this[evt]=null}};new Wikifier(h,t[0]);if(b=="hoverrevise"){h.onmouseover=f;h.onmouseout=function(){reviseAll("revert",rname)\n}}else{h[evt]=f}h=null}}};macros.instantrevise={handler:function(a,b,c,d){reviseAll("revise",c[0].replace(" ","_"))}};macros.endmouserevise=nullobj;\nmacros.endhoverrevise=nullobj}());
''END''\n\n----\n\n//Exploration of portals by <a href="http://www.twitter.com/rosencrantz">@rosencrantz</a> in the <a href="http://www.sharedepic.com">SharedEpic</a> universe.\n\n<a href="http://stories.amcorbin.com">More stories.</a>\n\nv01, 2014-03-08//
<h1>Inheritance</h1>\nThe ring Yulia's grandmother gave her wasn't very pretty -- an overworked silver band, rough black stone surrounded by an ill-thought combination of colored gems -- but she wears it while Grandma Eva is in town.\n\nLittle presents from Grandma Eva make Yulia happy; a reminder that although Eva is impossible to please, Yulia is her favorite. Eva is Yulia's favorite too. Eva always told Yulia the strangest old fairy stories when she was little.\n\nIn Aker Park, <<replace>>the ring glows in the twilight.<<gains>>\n\nNearby there are two trees arching together. The air between them shimmers.\n\nNervously twisting the ring, Yulia walks [[through]].<<endreplace>>
A blistering icy wind, darkness with a pinprick of light in the distance, air so thin Yulia gasps.\n\nNothing's here. The doorway's frame and a wide open plain of barren nothing. The door isn't glowing now.\n\n<<replace>>She walks toward the light. It must be another portal.<<gains>>\n\nNothing changes. The light gets no closer.<<gains>>\n\nAt some point she falls to her knees and crawls.<<gains>>\n\n<<if visited("door")>>The block falls out of Yulia's pocket, cracks into two pieces on the hardened ground. \n\nYulia starts to draw like the woman had.\n\nThe lines become a rough circle inside a rough circle. Not knowing what else to do, she scribbles whatever words make her think of home inside the circle.\n\nThe ring starts to glow, as does the portal she just drew.\n\nWith a gasp and a gulp, Yulia tumbles [[through|six]].<<else>>She hopes to reach the light, then hopes be saved, until she has no hope at all. Before she loses consciousness, she wishes she had asked her grandmother about the ring.\n\n<<display "end">><<endif>><<endreplace>>
Yulia falls onto her knees in scrubland, a few shacks nearby. Someone comes running out of the house, shouting at her.\n\n"You got it to work! How?"\n\nUnfortunately, the raggedy woman is holding a shotgun, and <<replace>>Yulia bolts.<<gains>> \n\nShe runs toward a dying grove of trees until the ring blazes into a bright glow, and she sees a portal light up to her right. [[She races through it|seven]].<<endreplace>>
A concrete room with a dark stain on one wall, an overturned table, and three doors.\n\nGrandma Eva's stories always featured bizzare passages to unknown places.... not that Yulia thinks this is one of gramma's stories.\n* The first door has a pale stone [[frame]].\n* The second door's frame is laced with cracks, with a cold draft when Yulia [[approaches]].\n* The last is made of rough-hewn [[wood]].
In the shadows, the woman fumbles through the mess on her tables.\n\n"Ah!" \n\nA crumpled piece of paper, covered in lines, completely incomprehensible to Yulia. The woman points, talks, traces. \n\nYulia understands -- it's a map of portals. There's one where she came in, one in these shadows, dozens of blacked out marks: blocked portals. Only two unblocked choices are close enough to matter. \n* She looks to [[the shadows]].\n* Yulia heads [[back|away]] through the crowd.
It's only a ceremony. Her dad seems excited; it's probably a bunch of boring speeches. \n\nYulia shrugs. It's close enough to home. Besides, she still has the ring, if she needs it.\n\nBefore they leave, her dad hands her a cloak with deep red trim.\n\n"Don't worry," he says. "All your practice'll pay off. I know you'll come through it safely."\n\n<<display "end">>
Unlike the other portals, she feels a static shock as she [[passes through|either("approaches","wood","six","six","wood","six","through")]].
In a pale stone room, a man wrapped in scant linen cloths looks up from a table. The air dries her throat. \n\nHe riffles through papers on the table. \n\n"This is not permitted." He grabs Yulia by the arm, marches her along. "Secure it," he says to a wiry man. \n\n"When are you from? The 1960s? That ring, it should be incomplete."\n\n"Let go of me!" She yanks her arm free. \n\n"You have to go. Your time, you can't stay here. Your granddaughter, she can come. You'll understand then."\n\nA door opens, and the air beneath the arch crackles, not shimmers. \n* Yulia lets him [[push her through|five]].\n* Yulia runs through a plain [[door]].
@import url(http://fonts.googleapis.com/css?family=Qwigley);\n\nbody {\n\tbackground-color: #292A2B;\n\tcolor: #E9EBF0;\n\tletter-spacing: .03em;\n\tfont-size: 110%;\n\tmargin: 5% 15% 5% 5%;\n\tfont-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;\n}\n#sidebar {display:none;}\n#sidebar #storyMenu {display: none;}\n.menu {display: none;}\n.menu div {padding: 0 .4em;}\n#passages {\n\tmargin:0;\n\tborder:0;\n\tborder-radius: 0px;\n\tpadding: 1em;\n\twidth:80%;\n\tmax-width: 700px;\n\tposition:absolute;\n}\n.passage {\n\tfont-size: 100%;\n\tline-height: 150%;\n\tmargin-bottom: 2em;\n\ttext-align: left;\n}\n.passage ul {\n\tpadding-top: .5em;\n}\n.passage li {\n\tmargin-left: .5em;\n\tpadding-top: 1em;\n}\n.passage center {\n\tmax-width:50%;\n\tmargin:auto;\n}\n.passage a {\n\tcolor: #A8D3F0;\n\tfont-weight: bold;\n\ttext-decoration: none;\n\tcursor: pointer;\n}\n.passage a:hover {\n\tcolor: #8DB1C9;\n\ttext-decoration: underline;\n}\na.brokenLink {\n\tbackground-color: red;\n\ttext-decoration: none;\n\tcolor: #000;\n}\n.disabled {\n\tfont-weight: bold;\n\tcolor: #333;\n}\n.marked {\n\tbackground-color: red;\n\tcolor: #000;\n\tmargin-right: 12px;\n\tpadding: 3px;\n}\n.marked[title] {\n\tcursor: help;\n}\n.passage ul {\n\tmargin-left: .5em;\n\tpadding-left: 1.5em;\n}\n.passage ol {\n\tmargin-left: .5em;\n\tpadding-left: 1.5em;\n}\n.passage table {\n\tborder-collapse: collapse;\n\tfont-size: 100%;\n\tmargin: .8em 1.0em;\n}\n.passage th,.passage td,.passage tr,.passage caption {\n\tpadding: 3px;\n}\n.passage hr {\n\theight: 1px;\n}\n#storeArea {\n\tdisplay: none;\n}\n#noscript {\n\tmargin-left: 18.2em;\n\tfont-size: 1.2em;\n\tfont-weight: bold;\n}\n/* trying a span to use a different font for different things */\nh1 {\n\tfont-family: 'Qwigley', cursive;\n\tcolor: #8DB1C9;\n\tfont-size:220% !important;\n\tletter-spacing: .03em;\n\tmargin:0 !important;\n\ttext-align:left !important;\n}\nh2 {\n\tfont-family: 'Qwigley', cursive;\n\tcolor: #8DB1C9;\n\tfont-size:160% !important;\n\tletter-spacing: .03em;\n\tmargin:0 !important;\n\ttext-align:left !important;\n}\n/* Small screen */\n@media handheld,screen and (max-width:768px) {\nbody{margin:2% 5% 2% 2%;}\n#passages {width:90%; max-width: 90%;padding:.5em;}\n.passage {\n\tfont-size: 100%;\n\tline-height: 150%;\n\ttext-align: left;\n}\n.passage ul ol li{margin-left:0;}\n}\n