1<html lang='en'> 2 <head> 3 <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 3-4
3 4<script async src="https://www.googletagmanager.com/gtag/js?id=
4G-C0FB3VEGYR
vendor: 12 bytes, line 4
4"></script>
5<script> 6 window.dataLayer = window.dataLayer || []; 7 function gtag(){dataLayer.push(arguments);} 8 gtag('js', new Date()); 9 10 // Classifies the current page as 'marketing', 'product', or 'other' for the 11 // GA4 content_group dimension. First match wins; marketing is checked first 12 // so pages like /tools/diagnostic aren't claimed by the /diagnostic product 13 // rule. When a new marketing page launches, add it here â ping Katie McNeil. 14 function quillContentGroup() { 15 var path = window.location.pathname.toLowerCase(); 16 17 // === MARKETING (checked first) === 18 if (path === '/' || path === '') return 'marketing'; 19 20 var marketingPrefixes = [ 21 '/sign-up/', '/tools/', '/admins/', '/teacher-center/', 22 '/teacher_premium/', '/en/', '/articles/', '/premium/', 23 '/quill-for-','/literature/', '/social-studies/', '/interdisciplinary-science/', 24 '/blog/' 25 ]; 26 for (var i = 0; i < marketingPrefixes.length; i++) { 27 if (path.indexOf(marketingPrefixes[i]) === 0) return 'marketing'; 28 } 29 30 var marketingExact = [ 31 '/account/new', '/sign-up', '/tools', '/admins', 32 '/teacher-center', '/teacher_premium', '/premium', 33 '/about', '/team', '/contact', '/press', '/careers', 34 '/impact', '/research-and-efficacy', 35 '/science-of-reading-and-writing', '/privacy-and-security', 36 '/ethical_ai', '/ethical-ai', '/pathways', '/faq', '/news', '/ap', '/preap', 37 '/springboard', '/college-board', '/blog', 38 '/social-studies', '/interdisciplinary-science', '/literature/' 39 ]; 40 if (marketingExact.indexOf(path) !== -1) return 'marketing'; 41 42 // === PRODUCT === 43 var productPrefixes = [ 44 '/student-center', '/classrooms/', '/classroom/', '/teachers/', 45 '/assign/', '/amplify/', '/account_settings', '/activity_sessions', 46 '/activities/', '/students_classrooms', '/diagnostic/', '/lessons/', 47 '/proofreader/', '/evidence/', '/grammar/', '/comprehension', 48 '/connect/', '/auth/', '/canvas_integration/', 49 '/oauth', '/clever/', '/join/', '/tutorials/', '/referrals' 50 ]; 51 for (var j = 0; j < productPrefixes.length; j++) { 52 if (path.indexOf(productPrefixes[j]) === 0) return 'product'; 53 } 54 55 var productExact = [ 56 '/classes', '/class', '/classrooms', '/classroom', 57 '/diagnostic', '/lessons', '/proofreader', '/evidence', 58 '/grammar', '/ai-writing-check', '/connect', 59 '/add_classroom', '/subscriptions', 60 '/admin_access', '/quill_academy', '/backpack', '/profile', 61 '/student', '/home', '/dashboard', '/teachers', '/activities', 62 '/join', '/referrals' 63 ]; 64 if (productExact.indexOf(path) !== -1) return 'product'; 65 66 // === OTHER (auth, legal, errors, internal) === 67 var otherPrefixes = ['/login', '/password', '/api/', '/cb/', '/cms/', '/session/']; 68 for (var k = 0; k < otherPrefixes.length; k++) { 69 if (path.indexOf(otherPrefixes[k]) === 0) return 'other'; 70 } 71 72 var otherExact = [ 73 '/sign-in', '/logout', '/forgot-password', '/tos', '/terms', 74 '/privacy', '/404', '/error', '/state_standards', '/teks', 75 '/locker', '/cms' 76 ]; 77 if (otherExact.indexOf(path) !== -1) return 'other'; 78 79 return undefined; 80 } 81 82 gtag('config', 'G-C0FB3VEGYR', { 83 content_group: quillContentGroup() 84 }); 85</script>
85 86 87 88
88<script type="text/javascript"> 89 window.global ||= window; 90 var process = process || { env: {} } // can likely remove this after pipeline rollout 91 window.postbuildEnv = {"CDN_URL":"https://assets.quill.org","CLASSLINK_SSO_CLIENT_ID":"c17453308740881ebb0af7c4870a1fc0391df4e1975f","CLASSLINK_ENABLED":true,"QUILL_CMS":"https://cms.quill.org","DEFAULT_URL":"https://www.quill.org","LESSONS_WEBSOCKETS_URL":"https://lessons-server.quill.org/","PERMITTED_LANGUAGES":" [\"english\", \"spanish\", \"portuguese\", \"chinese\", \"hindi\", \"french\", \"arabic\", \"russian\", \"urdu\", \"korean\", \"thai\", \"ukrainian\", \"dari\", \"tagalog\", \"japanese\", \"vietnamese\", \"german\"]","PUSHER_CLUSTER":"mt1","PUSHER_KEY":"b2cbf247b2e2d930b21d","QUILL_GRAMMAR_URL":"https://quill.org/grammar/#","RAILS_ENV":"production","PUBLIC_POSTHOG_HOST":"https://us.i.posthog.com","PUBLIC_POSTHOG_KEY":"phc_QxdZ6b251qqgNO4hy2MGtmosrVkPuR8iSFcAAerjGsB","SUPABASE_URL":"https://sessions.quill.org","SUPABASE_ANON_KEY":"sb_publishable_OAYJnjMR_Cfz0Xzhwxkmsw_FocrWhqo","SUPABASE_SERVICE_ENABLED":true,"SUPABASE_SESSION_PRIMARY":false} 92 </script>
92 93 94 95 <title>Quill.org | Contact</title> 96 <link rel="icon" type="image/x-icon" href="https://assets.quill.org/images/shared/favicon.ico" /> 97 98 <meta charset="utf-8"> 99 <meta http-equiv="X-UA-Compatible" content="IE=edge">
100<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"NRJS-bfa0d165f8376e8bdbd","applicationID":"548856875","transactionName":"IFgMQ0ELX19RQhYRBQRSERhQC11HVVNN","queueTime":1,"applicationTime":24,"agent":""}</script>
vendor: 1 bytes, line 100
100
101<script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"NRJS-bfa0d165f8376e8bdbd",applicationID:"548856875",browserID:"548858369"};;/*! For license information please see nr-loader-rum-1.322.0.min.js.LICENSE.txt */ 102(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),a=0===Object.keys(r).length?e:r;for(let s in a)if(void 0!==e[s])try{if(null===e[s]){r[s]=null;continue}Array.isArray(e[s])&&Array.isArray(t[s])?r[s]=Array.from(new Set([...e[s],...t[s]])):e[s]instanceof Map||e[s]instanceof Set||e[s]instanceof Date||e[s]instanceof RegExp?r[s]=e[s]:"object"==typeof e[s]&&null!==t[s]&&"object"==typeof t[s]?r[s]=i(e[s],t[s]):r[s]=e[s]}catch(e){r[s]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>s});var n=r(384),i=r(8122);const a={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function s(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,a)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["xv",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,a="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),s=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===s?.document?.visibilityState),c=""+s?.location,u=/iPad|iPhone|iPod/.test(s.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=((()=>{const e=s.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)());r.d(t,["OF",0,u,"RI",0,i,"WN",0,l,"bv",0,a,"gm",0,s,"m",0,c,"mw",0,o,"sb",0,d,"zk",0,()=>{const e=s?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<s.performance.now())return e}])},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>u,x3:()=>c});var n=r(3241),i=r(3606),a=r(860),s=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:a.P3[t]||0};e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&d(e))}function u(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,d(e)}}function d(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const a=e.ee,o=i.i.handlers;if(a&&!a.aborted&&a.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=a.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}
102).forEach(t=>{t[0]?.on&&t[0].context()instanceof s.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}a.isolatedBacklog||delete o[t],a.backlog[t]=null,a.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],a=e[2];n.apply(i,a)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),a=r(2646),s=r(5607);const o="nr@context:".concat(s.W),c=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&u.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,a){!1!==a&&(a=!0);if(c.aborted&&!i)return;t&&a&&t.emit(e,r,n);var o=g(n);m(e).forEach(e=>{e.apply(o,r)});var u=v()[s[e]];u&&u.push([f,e,r,o]);return o},get:h,listeners:m,context:g,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{s[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,o,()=>new a.y(o)):new a.y(o)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),u=(0,n.Zm)();u.ee||(u.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,a){a?(a.buffer([e],i),a.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(9908);a.on=s;var i=a.handlers={};function a(e,t,r,a){s(a||n.d,i,e,t,r)}function s(e,t,r,i,a){a||(a="feature"),e||(e=n.d);var s=t[a]=t[a]||{};(s[r]=s[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function a(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>a,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,a=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const s=[];for(var o=0;o<e;o++)s.push(i(r,a++).toString(16));return s.join("")}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>a});var n=r(944);const i=new Map;function a(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),a=t.includes("nrWrapper");return r||a||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},5289(e,t,r){"use strict";r.d(t,{GG:()=>s,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function a(){return"undefined"==typeof document||"complete"===document.readyState}function s(e,t){if(a())return e();const r=(0,i.J)(e),s=setInterval(()=>
102{a()&&(clearInterval(s),r())},500);(0,n.sp)("load",r,t)}function o(e){if(a())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(a())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>d,dV:()=>u,pV:()=>l});var n=r(6154),i=r(1863),a=r(944),s=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function u(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,s.i)(...Object.values(e.o))),e}function d(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,a.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),u(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>a,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function a(e,t,r){(0,n.sp)("pagehide",e,t,r)}},9300(e,t,r){"use strict";r(860).K7.ajax;r.d(t,["mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>a});var n=r(9566),i=r(1741);class a extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>a});var n=r(944),i=r(4261);class a{#e(e,...t){if(this[e]!==a.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>d});var n=r(3241),i=r(9908),a=r(1863),s=r(944),o=r(3969),c=r(8362),u=r(860);function d(e,t,r,a){const d=a||r;!d||d[e]&&d[e]!==c.d.prototype[e]||(d[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,u.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,s.R)(23,e)}})}function l(e,t,r,n,s){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(s||null===r)&&(0,i.p)("api-"+n,[(0,a.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",a="browser/blobs",s="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},u={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:a,[o.sessionReplay]:a,[o.logging]:s,[o.genericEvents]:"ins"};r.d(t,["$J",0,u,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,s,"df",0,a,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],a=t[n++];r.o(e,i)?0===a&&n++:0===a?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:a})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>"nr-rum-1.322.0.min.js",r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,a,s)=>{if(e[n])return void e[n].push(i);let o,c;if(void 0!==a){const e=document.getElementsByTagName("script");for(var u=0;u<e.length;u++){const r=e[u];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+a){o=r;break}}}if(!o){c=!0;var d={296:"sha512-/59P7qAoMYQDJAZerTRPChdYcdrlcoEAw2TwA1wz6Y0/XLmt3sblL
102I5JCXAuxG0YxsW7iqJzgrcO7NJWO58EfQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+a),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),d[s]&&(o.integrity=d[s])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={374:0,840:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const a=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=a);const s=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(s,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,a,s]=n;var o,c,u=0;if(i.some(t=>0!==e[t])){for(o in a)r.o(a,o)&&(r.m[o]=a[o]);if(s)s(r)}for(t&&t(n);u<i.length;u++)c=i[u],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),a=r(1741);var s=r(2555),o=r(981);t.K7.genericEvents,o.R.PA,o.R.UA,o.R.BP;const c={RESOURCES:"experimental.resources",REGISTER:"register"};var u=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var l=r(2614),f=r(944),g=r(8122);const p="[data-nr-mask]",m=e=>(0,g.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:u.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(c.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(c.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,f.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(c.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:l.wk,inactiveMs:l.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(p):""===t||null===t?e.mask_selector=p:(0,f.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,f.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,f.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var h=r(6154),v=r(9324);let b=0;const y={buildEnv:"PROD",distMethod:"CDN",version:v.xv,originTime:h.WN},_={consented:!1},w={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||_.consented},set consented(e){_.consented=e}
102,customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++b},listeningForIframeMessages:!1},R="BA";var A=r(7836),x=r(3241);const E={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908);const k="newrelic-iframe-";function T(e,t={},n,o){let{init:c,info:u,loader_config:d,runtime:l={},exposed:f=!0}=t;if(!u){const e=(0,i.pV)();c=e.init,u=e.info,d=e.loader_config}var p;e.init=m(c||{}),e.loader_config=(p=d||{},(0,g.a)(p,E)),u.jsAttributes??={},h.bv&&(u.jsAttributes.isWorker=!0),e.info=(0,s.D)(u);const v=e.init;e.runtime??=(e=>{const t=(0,g.a)(e,w),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:R,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(a.W.prototype).forEach(r=>{const n=a.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=A.ee.get(e.agentIdentifier),e.exposed=f,(0,x.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&h.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(k)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var j=r(1863),P=r(4261),N=r(1738);
102var O=r(1687),M=r(4234),I=r(5289),D=r(7767);function V(e){return!!(0,i.dV)().o.MO&&(0,D.V)(e)&&!0===e?.session_trace.enabled}var W=r(6389),B=r(7699);const C=new WeakSet,K=new WeakMap;class U extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,W.J)(()=>{(0,O.Ak)(e,this.featureName),t()}))}):(0,O.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,s.f)(e.info))return(0,f.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(K.has(e))return K.get(e);const i=(async()=>{if((0,D.V)(e.init))try{const{setupAgentSession:t}=await r.e(296).then(r.bind(r,1768));t(e)}catch(e){(0,f.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(B.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await Promise.resolve().then(function(){const e=new Error("Cannot find module '../../loaders/configure/iframe-message-handler'");throw e.code="MODULE_NOT_FOUND",e});t(e)}catch(e){(0,f.R)(23,e)}const[{Connector:i},{Harvester:a}]=await Promise.all([r.e(296).then(r.bind(r,6589)),r.e(296).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new a(e);const s=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(s.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();K.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,f.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,f.R)(34,e),this.abortHandler?.(),(0,O.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};h.RI?(0,I.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return V(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!C.has(e)&&(C.add(e),!(0,s.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}T(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var L=r(6630);class F extends U{static featureName=L.T;constructor(e){var t;super(e,L.T),this.setupInspectionEvents(),t=e,(0,N.Y)(P.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+P.Fw,[(0,j.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(296).then(r.bind(r,908)):r.e(296).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,x.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,I.sB)(t=>{e(t,"DOMContentLoaded")}),(0,I.GG)(t=>{e(t,"load")}),(0,I.Qr)(t=>{e(t,"navigate")}),this.ee.on(l.tS.UPDATE,(e,t)=>{(0,x.W)({type:"lifecycle",name:"session",data:t})})}}class G extends e.d{constructor(e){var t;(super(),h.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(F),T(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(P.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,P.cD,n);(0,f.R)(40,typeof r)}else(0,f.R)(39,typeof e)},t),function(e){(0,N.Y)(P.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,f.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,P.Dl,!0)},e)}(this),function(e){(0,N.Y)(P.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,P.nb,!1);(0,f.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(P.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+P.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,f.R)(65,typeof t)},e)}(this),this.run()):(0,f.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};
102return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,f.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,f.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var H=r(2843),z=r(782);class Y extends U{static featureName=z.T;constructor(e){super(e,z.T),h.RI&&((0,H.u)(()=>(0,S.p)("docHidden",[(0,j.t)()],void 0,z.T,this.ee),!0),(0,H.G)(()=>(0,S.p)("winPagehide",[(0,j.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9981))))}}var Z=r(3969);class q extends U{static featureName=Z.TZ;constructor(e){super(e,Z.TZ),this.importAggregator(e,()=>r.e(296).then(r.bind(r,9623)))}}new G({features:[F,Y,q],loaderType:"lite"})})()})();</script>
102 103 <meta name="viewport" content="width=device-width, initial-scale=1"> 104 <meta property="og:type" content="website" /> 105 <meta property="og:title" content="Contact" /> 106 <meta property="og:image" content="https://assets.quill.org/images/share/facebook.png" /> 107 <meta property="twitter:image" content="https://assets.quill.org/images/share/facebook.png" /> 108 <meta name="description" content=""> 109 <meta name="og:description" content=""> 110 <link rel="apple-touch-icon" href="https://assets.quill.org/images/logos/apple-touch-icon.png"> 111 <link rel="canonical" href="https://www.quill.org/contact"> 112 <link rel="manifest" href="/manifest.json" /> 113 114
114<script defer src="https://kit.fontawesome.com/a149fb25a6.js" crossorigin="anonymous" integrity="sha384-p7JrABPXxZLpj1XoHTzkPyVs8ekVssRFXc4B7XU6Z1c8XVDA7sVPem/lQ9UouxqE"></script>
114 115 <!-- Inspectlet tracking --> 116 <link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet" lazyload> 117 118 <!-- credit to https://blog.typekit.com/2011/05/25/loading-typekit-fonts-asynchronously/ --> 119
120<script> 121 (function() { 122 var config = { 123 kitId: 'zyx1nqp', 124 scriptTimeout: 3000 125 }; 126 var h = document.getElementsByTagName('html')[0]; 127 h.className += ' wf-loading'; 128 var t = setTimeout(function() { 129 h.className = h.className.replace(/(\s|^)wf-loading(\s|$)/g, ' '); 130 h.className += ' wf-inactive'; 131 }, config.scriptTimeout); 132 var d = false; 133 var tk = document.createElement('script'); 134 tk.src = '//use.typekit.net/' + config.kitId + '.js'; 135 tk.type = 'text/javascript'; 136 tk.async = 'true'; 137 tk.onload = tk.onreadystatechange = function() { 138 var rs = this.readyState; 139 if (d || rs && rs != 'complete' && rs != 'loaded') return; 140 d = true; 141 clearTimeout(t); 142 try { Typekit.load(config); } catch (e) {} 143 }; 144 var s = document.getElementsByTagName('script')[0]; 145 s.parentNode.insertBefore(tk, s); 146 })(); 147</script>
147 148 149 <link rel="stylesheet" href="//www.quill.org/vite/assets/shared-CfosUMcV.css" media="screen" /> 150 151 <link rel="stylesheet" href="//www.quill.org/vite/assets/application-CVWh7Zex.css" media="all" /> 152 <!-- start Segment.io --> 153
153<script type="text/javascript"> 154 155 !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t,e){var n=document.createElement("script");n.type="text/javascript";n.async=!0;n.src="https://cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a);analytics._loadOptions=e};analytics.SNIPPET_VERSION="4.1.0"; 156 analytics.load("XVeKI40fXyEqHE1Is9btaglTLTAaMHzQ", { 157 integrations: { 158 all: true 159 160 , Intercom: false 161 , Vitally: false 162 , Heap: false 163 } 164 } 165 ); 166 analytics.reset() 167 168 169 // In case a teacher was signed in on this computer and set the Intercom 170 // localStorage, and then a student logged into this computer, let's 171 // explicitly tell Intercom to shut it down so the student does not 172 // see Intercom. 173 window.onload = function() { 174 if (typeof Intercom !== 'undefined') { 175 Intercom('shutdown'); 176 } 177 }; 178 }}(); 179 </script>
179 180 <!-- end Segment.io --> 181 182 183
184<script> 185window.birdieSettings = Object.assign({}, window.birdieSettings || {}, {}); 186</script>
186 187<!-- Birdie code Snippet -->
188<script>(function(){window.addEventListener("load",function(){var t=document.createElement("script");t.type="text/javascript",t.src="https://app.birdie.so/widget/embed/l8o0vtmo",document.body.appendChild(t)});})();</script>
188 189 190
190<script src="//www.quill.org/vite/assets/application-DIzkaKlU.js" crossorigin="anonymous" type="module" defer="defer"></script>
190<link rel="modulepreload" href="//www.quill.org/vite/assets/preNavigationBannerApp-cAGbMq5q.js" as="script" crossorigin="anonymous" defer="defer"> 191<link rel="modulepreload" href="//www.quill.org/vite/assets/constants-6l3j42Ul.js" as="script" crossorigin="anonymous" defer="defer"> 192<link rel="modulepreload" href="//www.quill.org/vite/assets/requestWrapper-CJXXdkOj.js" as="script" crossorigin="anonymous" defer="defer"> 193<link rel="modulepreload" href="//www.quill.org/vite/assets/jquery-DGpjPq2O.js" as="script" crossorigin="anonymous" defer="defer"> 194<link rel="modulepreload" href="//www.quill.org/vite/assets/useSnackbarMonitor-eXDNdY9g.js" as="script" crossorigin="anonymous" defer="defer"> 195<link rel="modulepreload" href="//www.quill.org/vite/assets/snackbar-x0kYEhih.js" as="script" crossorigin="anonymous" defer="defer"> 196<link rel="modulepreload" href="//www.quill.org/vite/assets/school_selector-ZhtpFQqg.js" as="script" crossorigin="anonymous" defer="defer"> 197<link rel="modulepreload" href="//www.quill.org/vite/assets/index-4ZGqqI84.js" as="script" crossorigin="anonymous" defer="defer"> 198<link rel="modulepreload" href="//www.quill.org/vite/assets/useScaledTableColumnWidths-DbnrzIHk.js" as="script" crossorigin="anonymous" defer="defer"> 199<link rel="modulepreload" href="//www.quill.org/vite/assets/index-CvxRfEqC.js" as="script" crossorigin="anonymous" defer="defer"> 200<link rel="modulepreload" href="//www.quill.org/vite/assets/textArea-DWCcVEhT.js" as="script" crossorigin="anonymous" defer="defer"> 201<link rel="modulepreload" href="//www.quill.org/vite/assets/pluralize-CKdgV5HR.js" as="script" crossorigin="anonymous" defer="defer"> 202<link rel="modulepreload" href="//www.quill.org/vite/assets/buttonSpinner-B-kkMNhB.js" as="script" crossorigin="anonymous" defer="defer"> 203<link rel="modulepreload" href="//www.quill.org/vite/assets/TeacherPremium-c1w6RxXj.js" as="script" crossorigin="anonymous" defer="defer"> 204<link rel="modulepreload" href="//www.quill.org/vite/assets/password_wrapper-D369EHDt.js" as="script" crossorigin="anonymous" defer="defer"> 205<link rel="modulepreload" href="//www.quill.org/vite/assets/useDebounce-Dxa6sTg2.js" as="script" crossorigin="anonymous" defer="defer"> 206<link rel="modulepreload" href="//www.quill.org/vite/assets/StudentNavbarItemsAppClient-D2Ybn-I5.js" as="script" crossorigin="anonymous" defer="defer"> 207<link rel="modulepreload" href="//www.quill.org/vite/assets/pusher-UPwL9OZF.js" as="script" crossorigin="anonymous" defer="defer"> 208<link rel="modulepreload" href="//www.quill.org/vite/assets/AuthGoogleAccessForm-Boe46-Rn.js" as="script" crossorigin="anonymous" defer="defer"> 209<link rel="modulepreload" href="//www.quill.org/vite/assets/sortingMethods-HWdTx0tp.js" as="script" crossorigin="anonymous" defer="defer"> 210<link rel="modulepreload" href="//www.quill.org/vite/assets/postNavigationBanner-BbnJDKBR.js" as="script" crossorigin="anonymous" defer="defer"> 211<link rel="modulepreload" href="//www.quill.org/vite/assets/_commonjsHelpers-BosuxZz1.js" as="script" crossorigin="anonymous" defer="defer"> 212<link rel="modulepreload" href="//www.quill.org/vite/assets/get_auth_token-DUHxnVBB.js" as="script" crossorigin="anonymous" defer="defer"> 213<link rel="modulepreload" href="//www.quill.org/vite/assets/routingHelpers-DJtcPlkC.js" as="script" crossorigin="anonymous" defer="defer"> 214<link rel="modulepreload" href="//www.quill.org/vite/assets/useWindowSize-qa9b7xr7.js" as="script" crossorigin="anonymous" defer="defer"> 215<link rel="modulepreload" href="//www.quill.org/vite/assets/demoAccountBanner-yGTOhJVd.js" as="script" crossorigin="anonymous" defer="defer"> 216<link rel="modulepreload" href="//www.quill.org/vite/assets/dataTableChip-DJJna4_R.js" as="script" crossorigin="anonymous" defer="defer"> 217<link rel="modulepreload" href="//www.quill.org/vite/assets/purify.es-ZSz1NCfQ.js" as="script" crossorigin="anonymous" defer="defer"> 218<link rel="modulepreload" href="//www.quill.org/vite/assets/index-DcFefcRN.js" as="script" crossorigin="anonymous" defer="defer"> 219<link rel="modulepreload" href="//www.quill.org/vite/assets/combineReducers-L6roQ3OM.js" as="script" crossorigin="anonymous" defer="defer"> 220<link rel="modulepreload" href="//www.quill.org/vite/assets/radioButton-Ch3
220-HEAP.js" as="script" crossorigin="anonymous" defer="defer"> 221<link rel="modulepreload" href="//www.quill.org/vite/assets/xlsx-Bs-wpXP9.js" as="script" crossorigin="anonymous" defer="defer"> 222<link rel="modulepreload" href="//www.quill.org/vite/assets/clickHandlers-G-eBA-1-.js" as="script" crossorigin="anonymous" defer="defer"> 223<link rel="modulepreload" href="//www.quill.org/vite/assets/___vite-browser-external_commonjs-proxy-DRaEfepn.js" as="script" crossorigin="anonymous" defer="defer"><link rel="stylesheet" href="//www.quill.org/vite/assets/application-SR52WX9J.css" media="screen" defer="defer" /> 224 225 <meta name="csrf-param" content="authenticity_token" /> 226<meta name="csrf-token" content="fIL9njH7RJFQiOxF8IswPaBw_IGC9vsEXRfi1SU_tjNYarXaKgctALj_Cv9DaAryRk1OK6-PUKeJNj1troyLGw" /> 227 <meta id='current-user-testing-flag' property="flag" content= /> 228 <meta id='current-user-id' property="id" content= /> 229 <meta id='current-user-is-premium?' property="is_premium?" content= /> 230 <meta id='current-user-email' property="email" content= /> 231 232<!--[if !IE 7]> 233 <style type="text/css"> 234 #wrap { display: table ; height: 100% } 235 </style> 236<![endif]--> 237 238<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> 239<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> 240<!--[if lt IE 9]> 241
241<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
241 242
242<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
242 243<![endif]--> 244</head> 245 246
246<script> 247 function handleTabNavigation(e) { 248 if (e.code !== 'Tab') { return } 249 250 const element = document.getElementById("body") 251 if (element) { element.classList.remove("hide-focus-outline") } 252 } 253 </script>
253 254 <body class="hide-focus-outline" id="body" onkeydown="handleTabNavigation(event)"> 255 <div> 256 <a class="skip-main" href="#post-primary-nav">Skip past primary navigation</a> 257 </div> 258 259 260 261 262 263 264 265 266 <div id='application_nav_bar'> 267 268 269 <nav aria-label="Primary" class="navbar desktop-navbar" role="navigation"> 270 271<div class="q-navbar-home"> 272 <div class="logo-and-badge-container"> 273 <button 274 aria-expanded="true" 275 aria-label="Close navigation" 276 class="focus-on-light evidence-nav-toggle" 277 data-close-icon-src="https://assets.quill.org/images/icons/s/sidebar-close.svg" 278 data-open-icon-src="https://assets.quill.org/images/icons/s/sidebar-open.svg" 279 hidden 280 id="evidence-nav-toggle" 281 type="button" 282 > 283 <img alt="" src="https://assets.quill.org/images/icons/s/sidebar-close.svg" /> 284 </button> 285 <a aria-label="Quill" class=focus-on-dark href="/"> 286 <img alt="Quill.org logo" src="https://assets.quill.org/images/logos/quill-logo-green.svg" /> 287 </a> 288 289 </div> 290 291 <div class="home-nav-right wide primary-tab-active"> 292 <div id="schools-and-districts" class="navbar-tooltip-trigger "> 293 <button aria-expanded="false" aria-haspopup="true" class="focus-on-light" type="button">Schools & Districts</button> 294 <ul class="navbar-tooltip" role="menu"> 295 296<li role="none"> 297 <a class="tooltip-link" href="/admins" role="menuitem" target="_self"> 298 <div class="content-container" id="for-administrators"> 299 <div class="image-container"> 300 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/school.svg" id="for-administrators-img" loading="lazy" src="https://assets.quill.org/images/icons/s/school.svg" /> 301 </div> 302 <div> 303 <h3>For Administrators</h3> 304 <p>Create district-wide success</p> 305 </div> 306 </div> 307 </a> 308</li> 309 310 311<li role="none"> 312 <a class="tooltip-link" href="/science-of-reading-and-writing" role="menuitem" target="_self"> 313 <div class="content-container" id="science-of-reading-and-writing"> 314 <div class="image-container"> 315 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" id="science-of-reading-and-writing-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" /> 316 </div> 317 <div> 318 <h3>Science of Reading & Writing</h3> 319 <p>Use Quill to support the science of reading and writing</p> 320 </div> 321 </div> 322 </a> 323</li> 324 325 326<li role="none"> 327 <a class="tooltip-link" href="/privacy-and-security" role="menuitem" target="_self"> 328 <div class="content-container" id="privacy-and-security"> 329 <div class="image-container"> 330 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/lock.svg" id="privacy-and-security-img" loading="lazy" src="https://assets.quill.org/images/icons/s/lock.svg" /> 331 </div> 332 <div> 333 <h3>Privacy & Security</h3> 334 <p>See how we protect student data and support educators</p> 335 </div> 336 </div> 337 </a> 338</li> 339 340 341<li role="none"> 342 <a class="tooltip-link" href="/research-and-efficacy" role="menuitem" target="_self"> 343 <div class="content-container" id="research-and-efficacy"> 344 <div class="image-container"> 345 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/lightbulb.svg" id="research-and-efficacy-img" loading="lazy" src="https://assets.quill.org/images/icons/s/lightbulb.svg" /> 346 </div> 347 <div> 348 <h3>Research & Efficacy</h3> 349 <p>Find research validating Quillâs impact</p> 350 </div> 351 </div> 352 </a> 353</li> 354 355 356<li role="none"> 357 <a class="tooltip-link" href="/quill-for-college-writing" role="menuitem" target="_self"> 358 <div class="content-container" id="quill-for-college-writing"> 359 <div class="image-container"> 360 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/graduation-cap-filled.svg" id="quill-for-college-writing-img" loading="lazy" src="https://assets.quill.org/images/icons/s/graduation-cap-filled.svg" /> 361 </div> 362 <div> 363 <h3>For College Writing</h3> 364 <p>Follow one college's path to stronger writing</p> 365 </div> 366 </div> 367 </a> 368</li> 369 370 371<li role="none"> 372 <a class="tooltip-link" href="/premium" role="menuitem" target="_self"> 373 <div class="content-container" id="premium-pricing"> 374 <div class="image-container"> 375 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/premium-diamond.svg" id="premium-pricing-img" loading="lazy" src="https://assets.quill.org/images/icons/s/premium-diamond.svg" /> 376 </div> 377 <div> 378 <h3>Premium Pricing</h3> 379 <p>Go Premium to improve writing across your district</p> 380 </div> 381 </div> 382 </a> 383</li> 384 385 </ul> 386</div> 387 388 <div id="learning-tools" class="navbar-tooltip-trigger "> 389 <button aria-expanded="false" aria-haspopup="true" class="focus-on-light" type="button">Learning Tools</button> 390 <ul class="navbar-tooltip" role="menu"> 391 392<li role="none"> 393 <a class="tooltip-link" href="/tools/connect" role="menuitem" target="_self"> 394 <div class="content-container" id=""> 395 <div class="image-container"> 396 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/connect-icon-green.svg" id="connect-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/connect-icon-green.svg" /> 397 </div> 398 <div> 399 <h3>Quill Connect</h3> 400 <p>Combine sentences</p> 401 </div> 402 </div> 403 </a> 404</li> 405 406 407<li role="none"> 408 <a class="tooltip-link" href="/tools/lessons" role="menuitem" target="_self"> 409 <div class="content-container" id=""> 410 <div class="image-container"> 411 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/lessons-icon-green.svg" id="lessons-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/lessons-icon-green.svg" /> 412 </div> 413 <div> 414 <h3>Quill Lessons</h3> 415 <p>Teacher-led group lessons</p> 416 </div> 417 </div> 418 </a> 419</li> 420 421 422<li role="none"> 423 <a class="tooltip-link" href="/tools/diagnostic" role="menuitem" target="_self"> 424 <div class="content-container" id=""> 425 <div class="image-container"> 426 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/diagnostic-icon-green.svg" id="diagnostic-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/diagnostic-icon-green.svg" /> 427 </div> 428 <div> 429 <h3>Quill Diagnostic</h3> 430 <p>Identify learning gaps</p> 431 </div> 432 </div> 433 </a> 434</li> 435 436 437<li role="none"> 438 <a class="tooltip-link" href="/tools/proofreader" role="menuitem" target="_self"> 439 <div class="content-container" id=""> 440 <div class="image-container"> 441 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/proofreader-icon-green.svg" id="proofreader-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/proofreader-icon-green.svg" /> 442 </div> 443 <div> 444 <h3>Quill Proofreader</h3> 445 <p>Fix errors in passages</p> 446 </div> 447 </div> 448 </a> 449</li> 450 451 452<li role="none"> 453 <a class="tooltip-link" href="/tools/grammar" role="menuitem" target="_self"> 454 <div class="content-container" id=""> 455 <div class="image-container"> 456 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/grammar-icon-green.svg" id="grammar-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/grammar-icon-green.svg" /> 457 </div> 458 <div> 459 <h3>Quill Grammar</h3> 460 <p>Practice basic mechanics</p> 461 </div> 462 </div> 463 </a> 464</li> 465 466 467<li role="none"> 468 <a class="tooltip-link" href="/tools/evidence" role="menuitem" target="_self"> 469 <div class="content-container" id=""> 470 <div class="image-container"> 471 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" id="evidence-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" /> 472 </div> 473 <div> 474 <h3>Quill Reading for Evidence</h3> 475 <p>Use a text to write with evidence</p> 476 </div> 477 </div> 478 </a> 479</li> 480 481 </ul> 482</div> 483 484 <div id="explore-curriculum" class="navbar-tooltip-trigger "> 485 <button aria-expanded="false" aria-haspopup="true" class="focus-on-light" type="button">Explore Curriculum</button> 486 <ul class="navbar-tooltip" role="menu"> 487 488<li role="none"> 489 <a class="tooltip-link" href="/activities/packs" role="menuitem" target="_self"> 490 <div class="content-container" id=""> 491 <div class="image-container"> 492 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" id="featured-activities-image" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" /> 493 </div> 494 <div> 495 <h3>Featured Activities</h3> 496 <p>Explore featured activity packs that are created by our teachers</p> 497 </div> 498 </div> 499 </a> 500</li> 501 502 503<li role="none"> 504 <a class="tooltip-link" href="/literature" role="menuitem" target="_self"> 505 <div class="content-container" id=""> 506 <div class="image-container"> 507 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/book-white.svg" id="literature-img" loading="lazy" src="https://assets.quill.org/images/icons/s/book-white.svg" /> 508 </div> 509 <div> 510 <h3>Literature Activities</h3> 511 <p>
511Build background knowledge with writing activities paired with commonly taught works of literature</p> 512 </div> 513 </div> 514 </a> 515</li> 516 517 518<li role="none"> 519 <a class="tooltip-link" href="/social-studies" role="menuitem" target="_self"> 520 <div class="content-container" id=""> 521 <div class="image-container"> 522 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/globe.svg" id="social-studies-img" loading="lazy" src="https://assets.quill.org/images/icons/s/globe.svg" /> 523 </div> 524 <div> 525 <h3>Social Studies Activities</h3> 526 <p>Build social studies knowledge through reading and writing practice</p> 527 </div> 528 </div> 529 </a> 530</li> 531 532 533<li role="none"> 534 <a class="tooltip-link" href="/interdisciplinary-science" role="menuitem" target="_self"> 535 <div class="content-container" id=""> 536 <div class="image-container"> 537 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/ai.svg" id="interdisciplinary-science-img" loading="lazy" src="https://assets.quill.org/images/icons/s/ai.svg" /> 538 </div> 539 <div> 540 <h3>
540Interdisciplinary Science Activities</h3> 541 <p>Explore reading and writing activities focused on AI and STEM topics</p> 542 </div> 543 </div> 544 </a> 545</li> 546 547 548<li role="none"> 549 <a class="tooltip-link" href="/quill-for-texas" role="menuitem" target="_self"> 550 <div class="content-container" id=""> 551 <div class="image-container"> 552 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/texas.svg" id="teks-img" loading="lazy" src="https://assets.quill.org/images/icons/s/texas.svg" /> 553 </div> 554 <div> 555 <h3>Quill For Texas</h3> 556 <p>Browse grade-level TEKS-aligned activity packs</p> 557 </div> 558 </div> 559 </a> 560</li> 561 562 563<li role="none"> 564 <a class="tooltip-link" href="/ap" role="menuitem" target="_self"> 565 <div class="content-container" id=""> 566 <div class="image-container"> 567 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/pencil-icon-green.svg" id="ap-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/pencil-icon-green.svg" /> 568 </div> 569 <div> 570 <h3>AP Activities</h3> 571 <p>Official free AP English writing practice</p> 572 </div> 573 </div> 574 </a> 575</li> 576 577 578<li role="none"> 579 <a class="tooltip-link" href="/preap" role="menuitem" target="_self"> 580 <div class="content-container" id=""> 581 <div class="image-container"> 582 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/pencil-icon-green.svg" id="pre-ap-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/pencil-icon-green.svg" /> 583 </div> 584 <div> 585 <h3>Pre-AP Activities</h3> 586 <p>Official free Pre-AP English writing practice</p> 587 </div> 588 </div> 589 </a> 590</li> 591 592 593<li role="none"> 594 <a class="tooltip-link" href="/springboard" role="menuitem" target="_self"> 595 <div class="content-container" id=""> 596 <div class="image-container"> 597 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/pencil-icon-green.svg" id="pre-ap-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/pencil-icon-green.svg" /> 598 </div> 599 <div> 600 <h3>SpringBoard Activities</h3> 601 <p>Official free SpringBoard writing practice</p> 602 </div> 603 </div> 604 </a> 605</li> 606 607 608<li role="none"> 609 <a class="tooltip-link" href="/activities/standard_level/7" role="menuitem" target="_self"> 610 <div class="content-container" id=""> 611 <div class="image-container"> 612 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/standards-icon-green.svg" id="standards-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/standards-icon-green.svg" /> 613 </div> 614 <div> 615 <h3>ELA Standards</h3> 616 <p>See a list of ELA standards upon which we base our activities</p> 617 </div> 618 </div> 619 </a> 620</li> 621 622 </ul> 623</div> 624 625 <div id="teacher-center" class="navbar-tooltip-trigger "> 626 <button aria-expanded="false" aria-haspopup="true" class="focus-on-light" type="button">Teacher Center</button> 627 <ul class="navbar-tooltip" role="menu"> 628 629<li role="none"> 630 <a class="tooltip-link" href="/teacher-center" role="menuitem" target="_self"> 631 <div class="content-container" id=""> 632 <div class="image-container"> 633 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/folder-icon-green.svg" id="resources-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/folder-icon-green.svg" /> 634 </div> 635 <div> 636 <h3>All Resources</h3> 637 <p>View all of Quillâs instructional resources</p> 638 </div> 639 </div> 640 </a> 641</li> 642 643 644<li role="none"> 645 <a class="tooltip-link" href="/teacher-center/topic/writing-for-learning" role="menuitem" target="_self"> 646 <div class="content-container" id=""> 647 <div class="image-container"> 648 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" id="comprehension-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/evidence-icon-green.svg" /> 649 </div> 650 <div> 651 <h3>Writing For Learning</h3> 652 <p>Strengthening students' content knowledge and writing skills</p> 653 </div> 654 </div> 655 </a> 656</li> 657 658 659<li role="none"> 660 <a class="tooltip-link" href="/teacher-center/topic/getting-started" role="menuitem" target="_self"> 661 <div class="content-container" id=""> 662 <div class="image-container"> 663 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/clipboard-icon-green.svg" id="gettingstarted-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/clipboard-icon-green.svg" /> 664 </div> 665 <div> 666 <h3>Getting Started</h3> 667 <p>Set up your classroom on Quill with guides, videos, and presentations</p> 668 </div> 669 </div> 670 </a> 671</li> 672 673 674<li role="none"> 675 <a class="tooltip-link" href="/teacher-center/topic/video-tutorials" role="menuitem" target="_self"> 676 <div class="content-container" id=""> 677 <div class="image-container"> 678 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/play-box-icon-green.svg" id="casestudy-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/play-box-icon-green.svg" /> 679 </div> 680 <div> 681 <h3>Video Tutorials</h3> 682 <p>View detailed walkthroughs of Quill tools, set-up, and features</p> 683 </div> 684 </div> 685 </a> 686</li> 687 688 689<li role="none"> 690 <a class="tooltip-link" href="/teacher-center/topic/best-practices" role="menuitem" target="_self"> 691 <div class="content-container" id=""> 692 <div class="image-container"> 693 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/comment-account-icon-green.svg" id="research-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/comment-account-icon-green.svg" /> 694 </div> 695 <div> 696 <h3>Best Practices</h3> 697 <p>Explore implementation ideas from Quillâs instructional experts</p> 698 </div> 699 </div> 700 </a> 701</li> 702 703 704<li role="none"> 705 <a class="tooltip-link" href="/faq" role="menuitem" target="_self"> 706 <div class="content-container" id=""> 707 <div class="image-container"> 708 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/question-mark-icon-green.svg" id="faq-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/question-mark-icon-green.svg" /> 709 </div> 710 <div> 711 <h3>FAQ</h3> 712 <p>Answers for common questions about Quill</p> 713 </div> 714 </div> 715 </a> 716</li> 717 718 719<li role="none"> 720 <a class="tooltip-link" href="/premium" role="menuitem" target="_self"> 721 <div class="divider"></div> 722 <div class="content-container" id="premium-section"> 723 <div class="image-container"> 724 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/premium-icon-dark-gold.svg" id="premium-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/premium-icon-dark-gold.svg" /> 725 </div> 726 <div> 727 <h3>Premium</h3> 728 <p>Gain actionable insights with Quill Premium</p> 729 </div> 730 </div> 731 </a> 732</li> 733 734 </ul> 735</div> 736 737 <div id="our-story" class="navbar-tooltip-trigger active"> 738 <button aria-expanded="false" aria-haspopup="true" class="focus-on-light" type="button">About Us</button> 739 <ul class="navbar-tooltip" role="menu"> 740 741<li role="none"> 742 <a class="tooltip-link" href="/about" role="menuitem" target="_self"> 743 <div class="content-container" id=""> 744 <div class="image-container"> 745 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/quill-icon-green.svg" id="aboutus-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/quill-icon-green.svg" /> 746 </div> 747 <div> 748 <h3>About Us</h3> 749 <p>Learn about Quill's mission</p> 750 </div> 751 </div> 752 </a> 753</li> 754 755 756<li role="none"> 757 <a class="tooltip-link" href="/impact" role="menuitem" target="_self"> 758 <div class="content-container" id=""> 759 <div class="image-container"> 760 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/speaker-icon-green.svg" id="impact-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/speaker-icon-green.svg" /> 761 </div> 762 <div> 763 <h3>Impact</h3> 764 <p>Learn about Quill's reach</p> 765 </div> 766 </div> 767 </a> 768</li> 769 770 771<li role="none"> 772 <a class="tooltip-link" href="/press" role="menuitem" target="_self"> 773 <div class="content-container" id=""> 774 <div class="image-container"> 775 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/press-icon-green.svg" id="pathways-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/press-icon-green.svg" /> 776 </div> 777 <div> 778 <h3>Press</h3> 779 <p>
779Read articles that feature Quill</p> 780 </div> 781 </div> 782 </a> 783</li> 784 785 786<li role="none"> 787 <a class="tooltip-link" href="/ethical-ai" role="menuitem" target="_self"> 788 <div class="content-container" id=""> 789 <div class="image-container"> 790 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/s/ai.svg" id="ethical-ai-img" loading="lazy" src="https://assets.quill.org/images/icons/s/ai.svg" /> 791 </div> 792 <div> 793 <h3>Ethical AI Hub</h3> 794 <p>Our commitment to Ethical AI</p> 795 </div> 796 </div> 797 </a> 798</li> 799 800 801<li role="none"> 802 <a class="tooltip-link" href="/pathways" role="menuitem" target="_self"> 803 <div class="content-container" id=""> 804 <div class="image-container"> 805 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/compass-icon-green.svg" id="pathways-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/compass-icon-green.svg" /> 806 </div> 807 <div> 808 <h3>Pathways Initiative</h3> 809 <p>An instructional research project</p> 810 </div> 811 </div> 812 </a> 813</li> 814 815 816<li role="none"> 817 <a class="tooltip-link" href="/team" role="menuitem" target="_self"> 818 <div class="content-container" id=""> 819 <div class="image-container"> 820 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/account-group-icon-green.svg" id="pathways-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/account-group-icon-green.svg" /> 821 </div> 822 <div> 823 <h3>Team</h3> 824 <p>Learn about our team</p> 825 </div> 826 </div> 827 </a> 828</li> 829 830 831<li role="none"> 832 <a class="tooltip-link" href="/careers" role="menuitem" target="_self"> 833 <div class="content-container" id=""> 834 <div class="image-container"> 835 <img alt="" class="lazyload static" data-src="https://assets.quill.org/images/icons/pulldown_icons/account-add-icon-green.svg" id="pathways-img" loading="lazy" src="https://assets.quill.org/images/icons/pulldown_icons/account-add-icon-green.svg" /> 836 </div> 837 <div> 838 <h3>Careers</h3> 839 <p>See open positions</p> 840 </div> 841 </div> 842 </a> 843</li> 844 845 846<li role="none"> 847 <a class="tooltip-link" href="/contact" role="menuitem" target="_self"> 848 <div class="content-container" id=""> 849 <div class="image-container"> 850 <img alt="" class="lazyload static" data-src="https://quill-cdn.s3.amazonaws.com/images/icons/pulldown_icons/mail-icon.svg" id="envelope-img" loading="lazy" src="https://quill-cdn.s3.amazonaws.com/images/icons/pulldown_icons/mail-icon.svg" /> 851 </div> 852 <div> 853 <h3>Contact Us</h3> 854 <p>Contact Sales or Support</p> 855 </div> 856 </div> 857 </a> 858</li> 859 860 </ul> 861</div> 862 863 864 <a class="nav-element text-white " href="/session/new">Log In</a> 865 <a class="nav-element sign-up-button text-white " href="/account/new">Sign Up</a> 866 </div> 867</div> 868 869
870<script> 871 // Utility function to close a dropdown for a given button. 872 function closeDropdown(button) { 873 button.setAttribute("aria-expanded", "false"); 874 const menu = button.nextElementSibling; 875 if (menu) { 876 menu.style.display = "none"; 877 } 878 } 879 880 // Toggle dropdown on button click and handle Escape key on button. 881 document.querySelectorAll(".navbar-tooltip-trigger > button").forEach(button => { 882 button.addEventListener("click", event => { 883 event.stopPropagation(); 884 // Close all other dropdowns. 885 document.querySelectorAll(".navbar-tooltip-trigger > button").forEach(otherButton => { 886 if (otherButton !== button) { 887 closeDropdown(otherButton); 888 } 889 }); 890 891 // Toggle the clicked dropdown. 892 const expanded = button.getAttribute("aria-expanded") === "true"; 893 if (expanded) { 894 closeDropdown(button); 895 } else { 896 button.setAttribute("aria-expanded", "true"); 897 const menu = button.nextElementSibling; 898 if (menu) { 899 menu.style.display = "block"; 900 } 901 } 902 }); 903 904 button.addEventListener("keydown", event => { 905 if (event.key === "Escape") { 906 closeDropdown(button); 907 button.focus(); 908 } 909 }); 910 }); 911 912 // Close dropdown when clicking outside of its container. 913 document.addEventListener("click", event => { 914 document.querySelectorAll(".navbar-tooltip-trigger").forEach(container => { 915 if (!container.contains(event.target)) { 916 const button = container.querySelector("button"); 917 if (button) { 918 closeDropdown(button); 919 } 920 } 921 }); 922 }); 923 924 // Close dropdown when keydown event occurs outside of its container. 925 document.addEventListener("keydown", event => { 926 document.querySelectorAll(".navbar-tooltip-trigger").forEach(container => { 927 if (!container.contains(event.target)) { 928 const button = container.querySelector("button"); 929 if (button) { 930 closeDropdown(button); 931 } 932 } 933 }); 934 }); 935 936 const evidenceSidebarStorageKey = "evidence-sidebar-open"; 937 const evidenceSidebarToggle = document.getElementById("evidence-nav-toggle"); 938 939 function evidenceSidebarElements() { 940 return { 941 sidebar: document.querySelector(".main-admin-container .left-side-menu"), 942 activityContainer: document.querySelector(".main-admin-container .activity-container") 943 }; 944 } 945 946 function evidenceSidebarHasActivityEditorSection(sidebar) { 947 if (!sidebar) { return false; } 948 949 return Array.from(sidebar.querySelectorAll(".menu-label")).some(label => ( 950 label.textContent && label.textContent.trim() === "Activity Editor" 951 )); 952 } 953 954 function evidenceSidebarOpen() { 955 return window.localStorage.getItem(evidenceSidebarStorageKey) !== "false"; 956 } 957 958 function updateEvidenceSidebarToggle() { 959 if (!evidenceSidebarToggle) { return; } 960 961 const { sidebar, activityContainer } = evidenceSidebarElements(); 962 const hasSidebarLayout = Boolean( 963 sidebar && 964 activityContainer && 965 evidenceSidebarHasActivityEditorSection(sidebar) 966 ); 967 968 evidenceSidebarToggle.hidden = !hasSidebarLayout; 969 970 if (!hasSidebarLayout) { 971 document.body.classList.remove("evidence-sidebar-collapsed"); 972 return; 973 } 974 975 const isOpen = evidenceSidebarOpen(); 976 const img = evidenceSidebarToggle.querySelector("img"); 977 const openIconSrc = evidenceSidebarToggle.dataset.openIconSrc; 978 const closeIconSrc = evidenceSidebarToggle.dataset.closeIconSrc; 979 980 evidenceSidebarToggle.setAttribute("aria-expanded", String(isOpen)); 981 evidenceSidebarToggle.setAttribute("aria-label", isOpen ? "Close navigation" : "Open navigation"); 982 document.body.classList.toggle("evidence-sidebar-collapsed", !isOpen); 983 984 if (img) { 985 img.src = isOpen ? closeIconSrc : openIconSrc; 986 } 987 } 988 989 if (evidenceSidebarToggle) { 990 evidenceSidebarToggle.addEventListener("click", () => { 991 window.localStorage.setItem(evidenceSidebarStorageKey, String(!evidenceSidebarOpen())); 992 updateEvidenceSidebarToggle(); 993 }); 994 995 window.addEventListener("hashchange", updateEvidenceSidebarToggle); 996 997 let evidenceSidebarUpdatePending = false;
998 const evidenceSidebarObserver = new MutationObserver(() => { 999 if (!evidenceSidebarUpdatePending) { 1000 evidenceSidebarUpdatePending = true; 1001 requestAnimationFrame(() => { 1002 evidenceSidebarUpdatePending = false; 1003 updateEvidenceSidebarToggle(); 1004 }); 1005 } 1006 }); 1007 const evidenceSidebarObserverTarget = document.querySelector(".main-admin-container") || document.body; 1008 evidenceSidebarObserver.observe(evidenceSidebarObserverTarget, { 1009 childList: true, 1010 subtree: true 1011 }); 1012 1013 updateEvidenceSidebarToggle(); 1014 } 1015</script>
1015 1016 1017 </nav> 1018 <nav aria-label="Primary" class="navbar mobile-navbar" role="navigation"> 1019 1020 1021<nav class="q-navbar-home sub-page"> 1022 <div class="logo-and-badge-container"> 1023 <a aria-label="Quill" class="focus-on-dark" href=/> 1024 <div class="mobile-quill-logo"></div> 1025 </a> 1026 1027 </div> 1028 1029 <div class="right-side-mobile-nav"> 1030 <p class="active-tab ">About Us</p> 1031 <div class="mobile-hamburger-container "> 1032 <div class="hamburger-icon " onclick="toggleMobilePrimaryDropdown()"> 1033 <div class="horizontal-line"></div> 1034 <div class="horizontal-line"></div> 1035 <div class="horizontal-line"></div> 1036 </div> 1037 </div> 1038 </div> 1039 <div class="dropdown-container" id="mobile-primary-dropdown-container"> 1040 <div> 1041 <ul class="dropdown-menu" role='menu'> 1042 <li class=" " id="schools-and-districts"> 1043 <a class="focus-on-dark" href=/admins> 1044 Schools & Districts 1045 </a> 1046 <div class="checkmark-icon "></div> 1047 </li> 1048 <li class=" " id="learning-tools"> 1049 <a class="focus-on-dark" href=/tools/connect> 1050 Learning Tools 1051 </a> 1052 <div class="checkmark-icon "></div> 1053 </li> 1054 <li class=" " id=""> 1055 <a class="focus-on-dark" href=/activities/packs> 1056 Explore Curriculum 1057 </a> 1058 <div class="checkmark-icon "></div> 1059 </li> 1060 <li class=" " id=""> 1061 <a class="focus-on-dark" href=/teacher-center> 1062 Teacher Center 1063 </a> 1064 <div class="checkmark-icon "></div> 1065 </li> 1066 <li class="active " id=""> 1067 <a class="focus-on-dark" href=/about> 1068 About Us 1069 </a> 1070 <div class="checkmark-icon active"></div> 1071 </li> 1072 <li class=" " id=""> 1073 <a class="focus-on-dark" href=/session/new> 1074 Log In 1075 </a> 1076 <div class="checkmark-icon "></div> 1077 </li> 1078 <li class=" " id=""> 1079 <a class="focus-on-dark" href=/account/new> 1080 Sign Up 1081 </a> 1082 <div class="checkmark-icon "></div> 1083 </li> 1084 </ul> 1085 </div> 1086 </div> 1087</nav> 1088 1089 </nav> 1090 1091
1092<script> 1093 function toggleMobileSecondaryDropdown(primaryDropdownOpen) { 1094 const dropdown = document.querySelector('#mobile-subnav-dropdown'); 1095 1096 if(!dropdown) { return } 1097 1098 const parent = dropdown.parentElement 1099 1100 if(primaryDropdownOpen) { 1101 parent.classList.remove('open'); 1102 return; 1103 } 1104 if(parent.classList.contains('open')) { 1105 parent.classList.remove('open'); 1106 } else { 1107 parent.classList.add('open'); 1108 } 1109 } 1110 1111 function toggleMobilePrimaryDropdown() { 1112 toggleMobileSecondaryDropdown(true) 1113 const dropdown = document.querySelector('#mobile-primary-dropdown-container'); 1114 const child = dropdown.firstElementChild 1115 if(child.classList.contains('open')) { 1116 child.classList.remove('open'); 1117 } else { 1118 child.classList.add('open'); 1119 } 1120 } 1121 1122 function closeSubnavDropdown(dropdown, refocus) { 1123 dropdown.classList.remove('open'); 1124 const button = dropdown.querySelector('button'); 1125 if (button) { 1126 button.setAttribute('aria-expanded', 'false'); 1127 if (refocus) { button.focus(); } 1128 } 1129 } 1130 1131 function toggleSubnavDropdown(button) { 1132 const dropdown = button.closest('.subnav-dropdown'); 1133 if (!dropdown) { return } 1134 document.querySelectorAll('.subnav-dropdown.open').forEach(function(other) { 1135 if (other !== dropdown) { closeSubnavDropdown(other, false); } 1136 }); 1137 const isOpen = dropdown.classList.toggle('open'); 1138 button.setAttribute('aria-expanded', isOpen ? 'true' : 'false'); 1139 } 1140 1141 document.addEventListener('click', function(event) { 1142 document.querySelectorAll('.subnav-dropdown.open').forEach(function(dropdown) { 1143 if (!dropdown.contains(event.target)) { closeSubnavDropdown(dropdown, false); } 1144 }); 1145 }); 1146 1147 document.addEventListener('keydown', function(event) { 1148 if (event.key !== 'Escape') { return } 1149 document.querySelectorAll('.subnav-dropdown.open').forEach(function(dropdown) { 1150 closeSubnavDropdown(dropdown, true); 1151 }); 1152 }); 1153</script>
1153 1154 1155 </div> 1156 1157 <div id="post-primary-nav" class="page"> 1158 1159<div class="tab-subnavigation-wrapper desktop"> 1160 <div class="container"> 1161 <ul> 1162 <li> 1163 <a class="focus-on-dark" href=/about>About Us</a> 1164 </li> 1165 <li> 1166 <a class="focus-on-dark" href=/impact>Impact</a> 1167 </li> 1168 <li> 1169 <a class="focus-on-dark" href=/press>Press</a> 1170 </li> 1171 <li> 1172 <a class="focus-on-dark" href=/ethical-ai>Ethical AI Hub</a> 1173 </li> 1174 <li> 1175 <a class="focus-on-dark" href=/pathways>Pathways Initiative</a> 1176 </li> 1177 <li> 1178 <a class="focus-on-dark" href=/team>Team</a> 1179 </li> 1180 <li> 1181 <a class="focus-on-dark" href=/careers>Careers</a> 1182 </li> 1183 <li> 1184 <a class="active focus-on-dark" href=/contact>Contact Us</a> 1185 </li> 1186 </ul> 1187 </div> 1188</div> 1189 1190 1191<div class="tab-subnavigation-wrapper mobile "> 1192 <div class="dropdown-container"> 1193 <div id="mobile-subnav-toggle"> 1194 <button class="interactive-wrapper" onclick="toggleMobileSecondaryDropdown()" id="mobile-subnav-dropdown" type='button'> 1195 <p>Contact Us</p> 1196 <i class="fa fa-thin fa-angle-down"></i> 1197 </button> 1198 <ul class="dropdown-menu" role='menu'> 1199 <li id="About Us"> 1200 <a class="focus-on-dark" href=/about> 1201 About Us 1202 1203 </a> 1204 <div class="checkmark-icon " id="About Us-checkmark"></div> 1205 </li> 1206 <li id="Impact"> 1207 <a class="focus-on-dark" href=/impact> 1208 Impact 1209 1210 </a> 1211 <div class="checkmark-icon " id="Impact-checkmark"></div> 1212 </li> 1213 <li id="Press"> 1214 <a class="focus-on-dark" href=/press> 1215 Press 1216 1217 </a> 1218 <div class="checkmark-icon " id="Press-checkmark"></div> 1219 </li> 1220 <li id="Ethical AI Hub"> 1221 <a class="focus-on-dark" href=/ethical-ai> 1222 Ethical AI Hub 1223 1224 </a> 1225 <div class="checkmark-icon " id="Ethical AI Hub-checkmark"></div> 1226 </li> 1227 <li id="Pathways Initiative"> 1228 <a class="focus-on-dark" href=/pathways> 1229 Pathways Initiative 1230 1231 </a> 1232 <div class="checkmark-icon " id="Pathways Initiative-checkmark"></div> 1233 </li> 1234 <li id="Team"> 1235 <a class="focus-on-dark" href=/team> 1236 Team 1237 1238 </a> 1239 <div class="checkmark-icon " id="Team-checkmark"></div> 1240 </li> 1241 <li id="Careers"> 1242 <a class="focus-on-dark" href=/careers> 1243 Careers 1244 1245 </a> 1246 <div class="checkmark-icon " id="Careers-checkmark"></div> 1247 </li> 1248 <li id="Contact Us"> 1249 <a class="focus-on-dark" href=/contact> 1250 Contact Us 1251 1252 </a> 1253 <div class="checkmark-icon active" id="Contact Us-checkmark"></div> 1254 </li> 1255 </ul> 1256 </div> 1257 </div> 1258</div> 1259 1260 1261<div class="white-background"> 1262 <div class="container contact-page about-the-org-page"> 1263 <div class="contact-container"> 1264 <img src="https://quill-cdn.s3.amazonaws.com/images/icons/email.svg" /> 1265 <h1>Sales</h1> 1266 <div class="content-section"> 1267 <p>Learn more about <a href="https://www.quill.org/premium"><span>Quill Premium</span></a>. 1268 <p> 1269 If you need assistance selecting the right subscription, receiving a quote, or processing purchase orders, 1270 our sales team is here to help! Reach out to <span><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2d5e4c41485e6d5c5844414103425f4a">[email protected]</a>.</span> 1271 </p> 1272 <p> 1273 <a href="https://www.quill.org/premium/request-school-quote"><button>Request a quote</button></a> 1274 </p> 1275 </div> 1276 </div> 1277 <div class="vertical-divider"></div> 1278 <div class="horizontal-divider"></div> 1279 <div class="contact-container"> 1280 <img src="https://quill-cdn.s3.amazonaws.com/images/icons/packs-independent.svg" /> 1281 <h1>Support</h1> 1282 <div class="content-section"> 1283 <p>Help articles and resources can be found on our <a href="https://support.quill.org/en/"><span>Support Center</span></a>.</p> 1284 <p>For general inquiries, account guidance, instructional support, or to report bugs, our support team is here to help. Connect with them at <sp
1284an><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="62111712120d10162213170b0e0e4c0d1005">[email protected]</a></span>.</p> 1285 <p>You can also contact us at: <a href="tel:5106710222"><span>510-671-0222</span></a>.</p> 1286 </div> 1287 </div> 1288 </div> 1289</div> 1290 1291 </div> 1292 <!-- This is a placeholder for ReactOnRails to know where to render the store props for 1293 client side hydration --> 1294 1295 1296 <footer class="home-footer"> 1297 <section aria-labelledby="premiumFooterBannerHeader" class="banner-container three-part-premium dark-mode"> 1298 <section class="banner-card"> 1299 <div class="content-container"> 1300 <div class="text-container"> 1301 <h2>1.6x Rate of Growth</h2> 1302 <p>Research studies demonstrate how Quill effectively builds writing skills.</p> 1303 </div> 1304 <img src="https://assets.quill.org/images/logos/essa-logo-light.png" alt='Essa Tier Logo'/> 1305 </div> 1306 <a class="quill-button outlined small white focus-on-dark" href="/research-and-efficacy" rel="noopener noreferrer" target="_blank">See Research Studies</a> 1307 </section> 1308 <section class="banner-card"> 1309 <div class="content-container"> 1310 <div class="text-container"> 1311 <h2>10,000+ Quill Premium Educators</h2> 1312 <p>These educators use Premiumâs growth data, school-wide reports, and data integrations to boost outcomes.</p> 1313 </div> 1314 </div> 1315 <a class="quill-button outlined small white focus-on-dark" href="/premium" rel="noopener noreferrer" target="_blank">Explore Premium & Pricing</a> 1316 </section> 1317 <section class="banner-card"> 1318 <div class="content-container"> 1319 <div class="text-container"> 1320 <h2>92% Privacy Score</h2> 1321 <p>Common Sense awards the Privacy Seal for Quillâs high standards.</p> 1322 </div> 1323 <img src="https://assets.quill.org/images/logos/common-sense-privacy-logo-light.png" alt='Common Sense Privacy Logo' /> 1324 </div> 1325 <a class="quill-button outlined small white focus-on-dark" href="/privacy-and-security" rel="noopener noreferrer" target="_blank">View Privacy & Security</a> 1326 </section> 1327 </section> 1328 <div class="footer-navigation"> 1329 <ul> 1330 <li> 1331 <p>SCHOOLS & DISTRICTS</p> 1332 </li> 1333 <li> 1334 <a class=focus-on-dark href=/admins>For Administrators</a> 1335 </li> 1336 <li> 1337 <a class=focus-on-dark href=/science-of-reading-and-writing>Science of Reading & Writing</a> 1338 </li> 1339 <li> 1340 <a class=focus-on-dark href=/privacy-and-security>Privacy & Security</a> 1341 </li> 1342 <li> 1343 <a class=focus-on-dark href=/research-and-efficacy>Research & Efficacy</a> 1344 </li> 1345 <li> 1346 <a class=focus-on-dark href=/premium>Premium Pricing</a> 1347 </li> 1348</ul> 1349 1350 <ul> 1351 <li> 1352 <p>LEARNING TOOLS</p> 1353 </li> 1354 <li> 1355 <a class=focus-on-dark href=/tools/connect>Quill Connect</a> 1356 </li> 1357 <li> 1358 <a class=focus-on-dark href=/tools/lessons>Quill Lessons</a> 1359 </li> 1360 <li> 1361 <a class=focus-on-dark href=/tools/diagnostic>Quill Diagnostic</a> 1362 </li> 1363 <li> 1364 <a class=focus-on-dark href=/tools/proofreader>Quill Proofreader</a> 1365 </li> 1366 <li> 1367 <a class=focus-on-dark href=/tools/grammar>Quill Grammar</a> 1368 </li> 1369 <li> 1370 <a class=focus-on-dark href=/tools/evidence>Quill Reading for Evidence</a> 1371 </li> 1372</ul> 1373 1374 1375 <ul> 1376 <li> 1377 <p>EXPLORE CURRICULUM</p> 1378 </li> 1379 <li> 1380 <a class=focus-on-dark href=/activities/packs>Featured Activity Packs</a> 1381 </li> 1382 <li> 1383 <a class=focus-on-dark href=/ap>AP Activities</a> 1384 </li> 1385 <li> 1386 <a class=focus-on-dark href=/preap>Pre-AP Activities</a> 1387 </li> 1388 <li> 1389 <a class=focus-on-dark href=/springboard>SpringBoard Activities</a> 1390 </li> 1391 <li> 1392 <a class=focus-on-dark href=/activities/section/7>ELA Standards</a> 1393 </li> 1394</ul> 1395 1396 <ul> 1397 <li> 1398 <p>TEACHER CENTER</p> 1399 </li> 1400 <li> 1401 <a class=focus-on-dark href=/teacher-center>All Resources</a> 1402 </li> 1403 <li> 1404 <a class=focus-on-dark href=/teacher-center/topic/whats-new>What's New?</a> 1405 </li> 1406 <li> 1407 <a class=focus-on-dark href=/teacher-center/topic/writing-for-learning>Writing For Learning</a> 1408 </li> 1409 <li> 1410 <a class=focus-on-dark href=/teacher-center/topic/getting_started>Getting Started</a> 1411 </li> 1412 <li> 1413 <a class=focus-on-dark href=/teacher-center/topic/video-tutorials>Video Tutorials</a> 1414 </li> 1415 <li> 1416 <a class=focus-on-dark href=/teacher-center/topic/best-practices>Best Practices</a> 1417 </li> 1418 <li> 1419 <a class=focus-on-dark href=/faq>FAQ</a> 1420 </li> 1421</ul> 1422 1423 <ul> 1424 <li> 1425 <p>ABOUT US</p> 1426 </li> 1427 <li> 1428 <a class=focus-on-dark href=/about>About Us</a> 1429 </li> 1430 <li> 1431 <a class=focus-on-dark href=/impact>Impact</a> 1432 </li> 1433 <li> 1434 <a class=focus-on-dark href=/press>Press</a> 1435 </li> 1436 <li> 1437 <a class=focus-on-dark href=/ethical-ai>Ethical AI Hub</a> 1438 </li> 1439 <li> 1440 <a class=focus-on-dark href=/pathways>Pathways Initiative</a> 1441 </li> 1442 <li> 1443 <a class=focus-on-dark href=/team>Team</a> 1444 </li> 1445 <li> 1446 <a class=focus-on-dark href=/careers>Careers</a> 1447 </li> 1448 <li> 1449 <a class=focus-on-dark href=/contact>Contact Us</a> 1450 </li> 1451</ul> 1452 1453 </div> 1454 <div class="partners-footer"> 1455 <p>Quill is a free literacy tool powered by an open source, non-profit community of educators and developers.</p> 1456 <div class="partner-links"> 1457 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Axim C
1457ollaborative Logo'/> 1458 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Cambiar Education Logo'/> 1459 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Fast Forward Logo'/> 1460 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Overdeck Family Foundation Logo'/> 1461 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Robertson Foundation Logo'/> 1462 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Robinhood Logo'/> 1463 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/logos/[email protected]" alt='Siegel Family Endowment Logo'/> 1464 </div> 1465 </div> 1466 <div class="privacy-and-social flex-row space-between vertically-centered"> 1467 <div class="pas-left flex-row"> 1468 <p>© 2026 Quill</p> 1469 <p>Quill is a 501(c)(3) nonprofit organization</p> 1470 <a class="focus-on-light" href="/tos">Terms</a> 1471 <a class="focus-on-light" href="/privacy">Privacy</a> 1472</div> 1473 1474 <div class="pas-right flex-row"> 1475 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://www.commonsense.org/education/reviews/quill"> 1476 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/common-sense.svg" alt="Common Sense Logo"/> 1477 </a> 1478 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://apps.instructure.com/product/2336"> 1479 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/canvas.svg" alt="Canvas Logo"/> 1480 </a> 1481 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://clever.com/library/app/quill"> 1482 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/clever.svg" alt="Clever Logo"/> 1483 </a> 1484 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://edtechindex.org/product/ultid/U294-2794-E22F-64C9-48/"> 1485 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/iste.svg" alt="ISTE Logo"/> 1486 </a> 1487 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://www.google.com/search?q=Quill.org%2C+41+East+11th+Street%2C+New+York%2C+NY&sca_esv=e56551571a6f13fc&ei=JAD8aPGfBJCf5NoPvKCm8Aw&oq=Quill.org+4&gs_lp=Egxnd3Mtd2l6LXNlcnAiC1F1aWxsLm9yZyA0KgIIADICECYyCBAAGKIEGIkFMgUQABjvBTIIEAAYogQYiQUyCBAAGKIEGIkFSI8hUJgDWLgXcAJ4AJABAJgBV6AB0gGqAQEzuAEByAEA-AEBmAIFoALrAcICDhAAGIAEGLADGLEDGIMBwgIIEAAYgAQYsAPCAgsQABiABBiRAhiKBcICBRAAGIAEwgIGEAAYFhgewgILEAAYgAQYhgMYigXCAggQABiABBiiBJgDAIgGAZAGCpIHATWgB7URsgcBM7gH5AHCBwUwLjEuNMgHEg&sclient=gws-wiz-serp#lrd=0x89c25a16e9c13887:0x332ba694d8452c4c,1,,,,"> 1488 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/google.svg" alt="Google Logo"/> 1489 </a> 1490 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/quill-org"> 1491 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/linkedin.svg" alt="LinkedIn Logo"/> 1492 </a> 1493 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@Quillorg"> 1494 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/youtube.svg" alt="YouTube Logo"/> 1495 </a> 1496 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://www.tiktok.com/@writewithquill"> 1497 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/tiktok.svg" alt="TikTok Logo"/> 1498 </a> 1499 <a class="focus-on-dark" rel="noopener noreferrer" target="_blank" href="https://facebook.com/quill.org"> 1500 <img class="lazyload" loading="lazy" src="https://assets.quill.org/images/icons/xs/social-media/facebook.svg" alt="Facebook Logo"/> 1501 </a> 1502</div> 1503 1504 </div> 1505 <div class="disclaimer-container"> 1506 <p class="cb-disclaimer">College Board, AP, Pre-AP, and the acorn logo are registered trademarks of College Board.<p> 1507 </div> 1508 </footer> 1509 1510 1511 <!-- Include all compiled plugins (below), or include individual files as needed -->
vendor: 112 bytes, lines 1511-1513
1511 1512 1513 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1513</body> 1514 1515</html> 1516
1517<script> 1518 document.addEventListener("DOMContentLoaded", function() { 1519 if (window.matchMedia('(display-mode: minimal-ui)').matches) { 1520 function removeTargetFromLinks() { 1521 document.querySelectorAll('a[target=_blank]').forEach(function(a) {a.removeAttribute('target');}); 1522 } 1523 removeTargetFromLinks(); 1524 const observer = new MutationObserver(removeTargetFromLinks); 1525 observer.observe(document.body, { childList: true, subtree: true }); 1526 } 1527 }); 1528</script>
1528 1529
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.