/* Your story will use the CSS in this passage to style the page.\nGive this passage more tags, and it will only affect passages with those tags.\nExample selectors: */\n\nbody {\n\tbackground-color: white;\n\tcolor: #5d4646;\n\tfont-family: 'Vollkorn', sylfaen, georgia, garamond, serif;\n\tfont-size: 1.1em;\n\t\n}\n\nh1 {\n\tcolor: #ff0066;\n\tfont-size: 120%;\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n\tline-height: 100%;\n}\n\n.fade {\n opacity: 1;\n transition: opacity .25s ease-in-out;\n -moz-transition: opacity .25s ease-in-out;\n -webkit-transition: opacity .25s ease-in-out;\n }\n\n .fade:hover {\n opacity: 0.5;\n }\n\nimg.shadowed\n{-webkit-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.75);\n-moz-box-shadow: 5px 5px 5px 0px rgba(0,0,0,0.75);\nbox-shadow: 5px 5px 5px 0px rgba(0,0,0,0.75);}\n\n.bullet {\nfont-family: Freeserif, Segoe UI Symbol;\n}\n\n#circle {\nmargin-top: 10px;\n width: 30px;\n height: 30px;\nbackground-color: #ffc5c4;\n -webkit-border-radius: 15px;\n -moz-border-radius: 15px;\n border-radius: 15px;\ntransition: color 0.4s linear;\n -o-transition: color 0.4s linear;\n -moz-transition: color 0.4s linear;\n -webkit-transition: color 0.4s linear;\n}\n\n#circle:hover {\nbackground-color: #ffd2ec;\n}\n\n\n/* Do not display the Saves & Restart core menu items */\n#menu-saves, #menu-restart {\n\tdisplay: none;\n}\n\n#story-title {\n\tmargin:0;\n\tfont-size:150%;\n\tfont-family: Nunito;\n\tcolor: #ff0066;\n}\n\n#story-author {\n\tfont-size:100%;\n\tfont-family: Nunito;\n\tcolor: #ff0066;\n\tmargin-top: 0px;\n}\n\n#ui-bar {\n\toverflow:none;\n\tbackground-color: #ffffff;\n\tborder-right:0px solid #444\n}\n\n.passage {\n\t/* This only affects passages */\nmin-height: 400px;\npadding-left: 30px;\t\n\t \n}\n\n.passage a.set2 {\ncolor: #990066;\n}\n\n.passage a.set2:hover {\ncolor: #CC3399; text-decoration: underline;\n}\n\na.brightlink {\ncolor: #990066;\n}\n\na.brightlink:hover {\ncolor: #CC3399; text-decoration: underline;\n}\n\nspan.brightlink a {\ncolor: #990066;\n}\n\nspan.brightlink a:hover {\ncolor: #CC3399; text-decoration: underline;\n}\n\n.passage a {\n\ttext-decoration: none;\n\tcolor: #ffc5c4;\n\tfont-weight: normal;\ntransition: color 0.4s linear;\n -o-transition: color 0.4s linear;\n -moz-transition: color 0.4s linear;\n -webkit-transition: color 0.4s linear;\n\t\t\n}\n.passage a:hover {\n\ttext-decoration: none;\n\tcolor: #5d4646;\n\tfont-weight: normal;\n\t\n}
[[Poem|1]]\n[[Commentary]]\n<div style="padding-top: 30px;">\n<span style="font-size: 0.8em; font-weight: normal;">Sidekick Play-Poems use the Twine engine and Sugarcube story format.</span></div>
A vintage piece from the first <i>Coin Opera</i>, 'GLaDOS Breaks Up' is part-Dear John letter, part-linguistic meltdown. Stone weaves phrases from GLaDOS's in-game repertoire with new variations and references to a world outside, or at least the infiltration of the sealed facility by stray gusts of wind.\n\nIn the game <i>Portal</i>, you play the silent protagonist Chell, subjected to the tests of her science- and cake-obsessed electronic captor. In this Twined-up version of Stone's poem, the reader is once again held captive, as the poem cascades out at them at its own pace, a lecture in twisted love. Like Chell, we are never in control of our destiny. \n\nFor a short piece, it makes for a claustrophobic and unnerving experience, passive-aggressive, funny and weirdly tender. A deliciously dark confection, but not a great basis for love. Perhaps it is for the best, then, that GLaDOS is breaking up with us. We'll always have Aperture Science.\n\n<span class="brightlink">[[Return to poem|previous()]]</span>\n<a class="set2" data-passage="Start">Return to front page</a>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Vollkorn">\s\n<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Nunito"><div style="display: inline-block; width: 80%; height: 115px; line-height: 17px;">\s\n<span class="fade"><a href="http://www.sidekickbooks.com" target="_top"><img src="http://www.sidekickbooks.com/sidekicklogocolour.png" width="100px" align="left"></a></span>\s\n<span style="font-weight: normal;"><span style="font-size: 0.8em;">the</span> sidekick<br/><span style="font-size: 0.9em;">PLAY-POEM</span><br/><span style="font-size: 0.9em;">A R C H I V E</span></span></div>
It really is a shame <<timedinsert 1s>>I loved your wallpaper<<timedinsert 1s>> And I liked the way you would badger about in just your jeans<<timedinsert 2s>> I even had a surprise planned if you completed our relationship but I'm not going to tell you what it is <<timedinsert 3s>>Frankly you have enough to regret before dying <<timedinsert 2s>>Love is beautiful because it is a programme whose ultimate function is to become functionless<<timedinsert 3s>> The way you used to look at me would remind me of the way the wind comes in through the smallest opening<<timedinsert 3s>> Love is<<timedinsert 1s>> Love is a shame<<timedinsert 1s>> It's a shame you are so stupid <<timedinsert 2s>>Frankly the way you badger is the way the wind would surprise you in just your jeans<<timedinsert 3s>> The way love is your wallpaper<<timedinsert 2s>> The way the wind is dying<<timedinsert 2s>> A shame\n\n<a class="set2" data-passage="Start">Return to front page</a>\n<<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>><<endtimedinsert>>
<span style="color:#ff0066;">GLADOS BREAKS UP</span>\n<span style="font-size: 0.8em;">by Jon Stone</span>\n\nClick the pink circle to advance. Use backspace to retread.\n<a data-passage="1"><div id="circle"></div></a>\n<span style="font-size: 0.9em;">\nThis poem is published in hard copy format in <a class="set2" href="http://www.sidekickbooks.com/coinopera.php" target="_top"><i>Coin Opera</i>.</a></span>\n\n<span class="fade" style="width:auto;"><a href="http://www.sidekickbooks.com/coinopera.php" target="_top"><img class="shadowed" style="margin-left: 30px;" src="http://www.sidekickbooks.com/images/coinoperacover.jpg"></a></span>
/*! <<replacelink>> macro set for SugarCube */\n!function(){"use strict";function showVer(n,notrans){n&&(n.innerHTML="",new Wikifier(n,n.tweecode),n.setAttribute("data-enabled","true"),n.style.display="inline",n.classList.remove("revision-span-out"),notrans||(n.classList.add("revision-span-in"),n.timeout&&clearTimeout(n.timeout),n.timeout=setTimeout(function(){n.classList.remove("revision-span-in"),n=null},20)))}function hideVer(n,notrans){n&&(n.setAttribute("data-enabled","false"),n.classList.remove("revision-span-in"),n.timeout&&clearTimeout(n.timeout),notrans?(n.style.display="none",n.innerHTML="",n=null):(n.classList.add("revision-span-out"),n.timeout=setTimeout(function(){"false"===n.getAttribute("data-enabled")&&(n.classList.remove("revision-span-out"),n.style.display="none",n.innerHTML=""),n=null},1e3)))}function tagcontents(b,starttags,desttags,endtags,k){function tagfound(i,e,endtag){for(var j=0;j<e.length;j++)if(a.indexOf("<<"+e[j]+(endtag?">>":""),i)===i)return e[j]}for(var tg,l=0,c="",a=b.source.slice(k),i=0;i<a.length;i++){if(tg=tagfound(i,starttags))l++;else{if((tg=tagfound(i,desttags,!0))&&0===l)return b.nextMatch=k+i+tg.length+4,[c,tg];if((tg=tagfound(i,endtags,!0))&&(l--,0>l))return null}c+=a.charAt(i)}return null}function revisionSpanHandler(g,e,f,b){function mkspan(vtype){return h=insertElement(m,"span",null,"revision-span "+vtype),h.setAttribute("data-enabled",!1),h.style.display="none",h.tweecode="",h}var becomes,c,cn,m,h,vsn,k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length;if(this.shorthand&&flen)for(;f.length>0;)vsns.push([f.shift(),"insert"===this.flavour?"gains":"becomes"]);else("insert"===this.flavour||"continue"===this.flavour&&"time"===this.trigger)&&vsns.push(["","becomes"]);if("continue"===this.flavour&&flen)b.nextMatch=k+b.source.slice(k).length,vsns.push([b.source.slice(k),vtype]);else{if(becomes=["becomes","gains"],c=tagcontents(b,begintags,becomes.concat(endtags),endtags,k),c&&-1===endtags.indexOf(c[1])){for(;c;)vsns.push(c),c=tagcontents(b,begintags,becomes,endtags,b.nextMatch);c=tagcontents(b,begintags,["/"+e,"end"+e],endtags,b.nextMatch)}if(!c)return void throwError(g,"<<"+e+">>: cannot find a matching close tag");vsns.push(c),"continue"===this.flavour&&(k=b.nextMatch,b.nextMatch=k+b.source.slice(k).length,vsns.push([b.source.slice(k),""]))}for("remove"===this.flavour&&vsns.push(["","becomes"]),cn=0,m=insertElement(g,"span",null,e),m.setAttribute("data-flavour",this.flavour),h=mkspan("initial"),vsn=vsns.shift(),h.tweecode=vsn[0],showVer(h,!0);vsns.length>0;)vsn&&(vtype=vsn[1]),vsn=vsns.shift(),h=mkspan(vtype),h.tweecode=vsn[0];"function"==typeof this.setup&&this.setup(m,g,e,f)}function revisionSetup(m,g,e,f){m.className+=" "+f[0].replace(" ","_")}function keySetup(m,g,e,f){f[0];m.setEventListener("keydown",function l(){var done=!revise("revise",m);done&&m.removeEventListener("keydown",l)})}function timeSetup(m,g,e,f){function cssTimeUnit(s){if("string"==typeof s){if("ms"===s.slice(-2).toLowerCase())return Number(s.slice(0,-2))||0;if("s"===s.slice(-1).toLowerCase())return 1e3*Number(s.slice(0,-1))||0}return throwError(g,"<<"+e+'>>: "'+s+'" is not a valid CSS time unit'),0}var tm=cssTimeUnit(f[0]),s=passage();setTimeout(function timefn(){if(passage()===s){var done=!revise("revise",m);done||setTimeout(timefn,tm)}},tm)}function hoverSetup(m){var fn,noMouseEnter=null!==document.head.onmouseenter,m1=m.children[0],m2=m.children[1],gains=m2.className.indexOf("gains")>-1;m1&&m2&&(m1.onmouseenter=function(e){for(var efp=document.elementFromPoint(e.clientX,e.clientY);efp&&efp!==this;)efp=efp.parentNode;efp&&"false"!==this.getAttribute("data-enabled")&&revise("revise",this.parentNode)},m2.onmouseleave=function(e){for(var efp=document.elementFromPoint(e.clientX,e.clientY);efp&&efp!==this;)efp=efp.parentNode;efp||"false"!==this.getAttribute("data-enabled")&&revise("revert",this.parentNode)},gains&&(m1.onmouseleave=m2.onmouseleave),noMouseEnter&&(fn=function(n){return function(){event.relatedTarget&&(event.relatedTarget===this||this.compareDocumentPosition(event.relatedTarget)&Node.DOCUMENT_POSITION_CONTAINED_BY)||this[n]()}},m1.onmouseover=fn("onmouseenter"),m2.onmouseout=fn("onmouseleave"),gains&&(m1.onmouseout=m2.onmouseout)),m=null)}function mouseSetup(m){var evt=null===document.head.onmouseenter?"onmouseenter":"onmouseover";m[evt]=function(){var done=!revise("revise",this);done&&(this[evt]=null)},m=null}function linkSetup(m){var l=document.createElement("a"),p=m.parentNode;l.className="link-internal replaceLink",p.insertBefore(l,m),l.insertBefore(m,null),l.onclick=function(){var done=!1;m&&m.parentNode===this&&(done=!revise("revise",m),scrollWindowTo(m)),done&&(this.parentNode.insertBefore(m,this),this.parentNode.removeChild(this))},l=null}function visitedSetup(m){var done,sav=state.active.variables,os="once seen",d=m.firstChild&&("insert"===this.flavour?m.firstChild.nextSibling:m.firstChild).tweecode;if(sav[os]=sav[os]||{},d&&!sav[os].hasOwnProperty(d))sav[os][d]=1;else{for(var i=sav[os][d];i>0&&!done;i--)done=!revise("revise",m,!0);sav[os].hasOwnProperty(d)&&(sav[os][d]+=1)}}function insideDepartingSpan(elem){for(var r=elem.parentNode;!r.classList.contains("passage");){if(r.classList.contains("revision-span-out"))return!0;r=r.parentNode}}function reviseAll(rt,rname){for(var rall=document.querySelectorAll(".passage [data-flavour]."+rname),ret=!1,i=0;i<rall.length;i++)insideDepartingSpan(rall[i])||(ret=revise(rt,rall[i])||ret);return ret}function revise(rt,r,notrans){function doToGainerSpans(n,fn){for(var k=n-1;k>=0&&rc[k+1].classList.contains("gains");k--)fn(rc[k],notrans)}for(var ind2,curr,next,ind=-1,rev="revert"===rt,rnd=rt.indexOf("random")>-1,fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc="cycle"===fl,rcl=rc.length-1,k=0;rcl>=k;k++)"true"===rc[k].getAttribute("data-enabled")&&(ind=k);rev&&(ind-=1),curr=ind>=0?rc[ind]:cyc?rc[rcl]:null,ind2=ind,rnd&&(ind2=(ind+Math.floor(Math.random()*rcl))%rcl),next=rcl>ind2?rc[ind2+1]:cyc?rc[0]:null;var docurr=rev?showVer:hideVer,donext=rev?hideVer:showVer,currfn=function(){next&&next.classList.contains("gains")&&!rnd||(docurr(curr,notrans),doToGainerSpans(ind,docurr,notrans))},nextfn=function(){donext(next,notrans),rnd&&doToGainerSpans(ind2+1,donext,notrans)};return rev?(nextfn(),currfn()):(currfn(),nextfn()),cyc?!0:rev?ind>0:rcl-1>ind2}var requiredSugarCubeBuild=3805;if(!version||!version.build||version.build<requiredSugarCubeBuild)throw new Error("<<replacelink>> macro set requires SugarCube build "+requiredSugarCubeBuild+" or greater, aborting load");version.extensions.replacelinkMacroSet={major:1,minor:1,revision:7};var begintags=[],endtags=[];[{name:"insertlink",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:"replacelink",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:"continuelink",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,e.shorthand=["link","mouse","hover"].indexOf(e.trigger)>-1,macros[e.name]=e,macros.registerTags(e.name),begintags.push(e.name),endtags.push("/"+e.name,"end"+e.name)}),macros.revertlink=macros.reviselink=macros.randomiselink=macros.randomizelink={handler:function(a,b,c){function disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"}function updateLink(l){if(l.className.indexOf("random")>-1)return void enableLink(l);for(var cannext,canprev,r,fl,rall=document.querySelectorAll(".passage [data-flavour]."+rname),i=0;i<rall.length;i++)r=rall[i],fl=r.getAttribute("data-flavour"),insideDepartingSpan(r)||("cycle"===fl?cannext=canprev=!0:("false"===r.firstChild.getAttribute("data-enabled")&&(canprev=!0),"false"===r.lastChild.getAttribute("data-enabled")&&(cannext=!0)));var can=l.classList.contains("revert")?canprev:cannext;(can?enableLink:disableLink)(l)}function toggleText(w){w.classList.toggle(rl+"Enabled"),w.classList.toggle(rl+"Disabled"),w.style.display="none"===w.style.display?"inline":"none"}if(c.length<2)return void throwError(a,"<<"+b+">>: insufficient arguments (requires at least 2)");var l,rname,rl="reviseLink",v="",end=!1,out=!1;switch(rname=c.shift().replace(" ","_"),l=insertElement(a,"a"),l.className="link-internal "+rl+" "+rl+"_"+rname+" "+b,c.length>1&&"$"===c[0][0]&&(v=c[0].slice(1),c.shift()),c[c.length-1]){case"end":end=!0,c.pop();break;case"out":out=!0,c.pop()}for(var h=state.active.variables,i=0;i<c.length;i++){var on=i===Math.max(c.indexOf(h[v]),0),d=insertElement(null,"span",null,rl+(on?"En":"Dis")+"abled");on?(h[v]=c[i],l.setAttribute("data-cycle",i)):d.style.display="none",insertText(d,c[i]),l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);var lall,t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length;if((end||out)&&u>=m-(end?2:1)){if(!end)return void this.parentNode.removeChild(this);var n=this.removeChild(t[u+1]||t[u]);n.className=rl+"End",n.style.display="inline",this.parentNode.replaceChild(n,this)}else toggleText(t[u]),u=(u+1)%m,v&&(h[v]=c[u]),toggleText(t[u]),this.setAttribute("data-cycle",u);lall=document.getElementsByClassName(rl+"_"+rname);for(var i=0;i<lall.length;i++)updateLink(lall[i])},disableLink(l),setTimeout(function(l){return function(){updateLink(l)}}(l),1),l=null}},macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["/"+b,"end"+b],evt=null===window.onmouseenter?"onmouseenter":"onmouseover",t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);if(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);"hoverrevise"!=b&&done&&(this[evt]=null)};new Wikifier(h,t[0]),"hoverrevise"===b?(h.onmouseover=f,h.onmouseout=function(){reviseAll("revert",rname)}):h[evt]=f,h=null}}},macros.registerTags("mouserevise"),macros.registerTags("hoverrevise"),macros.instantrevise={handler:function(a,b,c){reviseAll("revise",c[0].replace(" ","_"))}}}();\n
GLaDOS Breaks Up
Jon Stone
.revision-span-in {\n\topacity: 0;\n}\n.revision-span:not(.revision-span-out) {\n\ttransition: 1s; -webkit-transition: 1s;\n}\n.revision-span-out {\n\tposition:absolute;\n\topacity: 0;\n}\n\n\n/*! <<replacelink>> macro set for SugarCube */\n.revision-span-in{opacity:0}.revision-span:not(.revision-span-out){-webkit-transition:1s;transition:1s}.revision-span-out{position:absolute;opacity:0}\n