:root{--space:1.2em;--spaceXS:calc(var(--space)*.25);--spaceS:calc(var(--space)*.5);--spaceM:calc(var(--space)*1.5);--spaceL:calc(var(--space)*2);--spaceXL:calc(var(--space)*4);--font:1.25rem;--fontXS:calc(var(--font)*.5);--fontS:calc(var(--font)*.75);--fontM:calc(var(--font)*1.5);--fontL:calc(var(--font)*2);--fontXL:calc(var(--font)*3);--gap:var(--font);--gapXS:calc(var(--gap)*.25);--gapS:calc(var(--gap)*.5);--gapM:calc(var(--gap)*1.5);--gapL:calc(var(--gap)*2);--gapXL:calc(var(--gap)*4);-webkit-font-smoothing:antialiased;--stroke:.1rem;--cols:12}@media (max-width:640px){:root{--stroke:1px}}*{box-sizing:border-box;font:inherit;margin:0;padding:0}body{font-size:var(--font);line-height:var(--space);font-kerning:normal}h1,h2,h3{font:inherit;font-size:inherit;font-weight:inherit}a{color:inherit;text-underline-offset:.1em;text-decoration:underline;text-decoration-thickness:.05em}a:hover{text:pointer;text-decoration:none}b{font-weight:500}em{font-style:italic}figure{width:100%}img{object-fit:contain;width:100%;height:auto;display:block}svg{width:100%;height:auto;max-height:100%;display:block}iframe{border:none;display:block}ul,ol{list-style:none}.text{max-width:50rem}.text>*+*{margin-top:var(--gap)}.text-small{font-size:var(--fontS)}.tabular{font-variant-numeric:tabular-nums}.upper{text-transform:uppercase}.fontXS{font-size:var(--fontXS)}.fontS{font-size:var(--fontS)}.font{font-size:var(--font)}.fontM{font-size:var(--fontM)}.fontL{font-size:var(--fontL)}.fontXL{font-size:var(--fontXL)}.flex{display:flex}.flex-rowR{flex-direction:row-reverse}.flex-column{flex-direction:column}.flex-columnR{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-basis{flex-basis:0}.flex-grow{flex-grow:1}.flex-shrink{flex-shrink:1}.flex-centre{justify-content:center;align-items:center}.justify-centre{justify-content:center}.justify-between{justify-content:space-between}.align-centre{align-items:center}.align-baseline{align-items:baseline}.grid{display:grid}.subgrid{grid-template-columns:subgrid}.cols{grid-template-columns:repeat(var(--cols),1fr)}.span-full{grid-column:1/-1}.gapXS{gap:var(--gapXS)}.gapS{gap:var(--gapS)}.gap{gap:var(--gap)}.gapM{gap:var(--gapM)}.gapL{gap:var(--gapL)}.gapXL{gap:var(--gapXL)}.gap-none{gap:0}.gap-row-none{row-gap:0}.gap-column-none{column-gap:0}.paddingXS{padding:var(--spaceXS)}.paddingS{padding:var(--spaceS)}.padding{padding:var(--space)}.paddingM{padding:var(--spaceM)}.paddingL{padding:var(--spaceL)}.paddingXL{padding:var(--spaceXL)}.paddingXS-top{padding-top:var(--spaceXS)}.paddingS-top{padding-top:var(--spaceS)}.padding-top{padding-top:var(--space)}.paddingM-top{padding-top:var(--spaceM)}.paddingL-top{padding-top:var(--spaceL)}.paddingXL-top{padding-top:var(--spaceXL)}.paddingXS-bottom{padding-bottom:var(--spaceXS)}.paddingS-bottom{padding-bottom:var(--spaceS)}.padding-bottom{padding-bottom:var(--space)}.paddingM-bottom{padding-bottom:var(--spaceM)}.paddingL-bottom{padding-bottom:var(--spaceL)}.paddingXL-bottom{padding-bottom:var(--spaceXL)}.padding-none{padding:0}.padding-top-none{padding-top:0}.padding-bottom-none{padding-bottom:0}.marginXS{margin:var(--spaceXS)}.marginS{margin:var(--spaceS)}.margin{margin:var(--space)}.marginM{margin:var(--spaceM)}.marginL{margin:var(--spaceL)}.marginXL{margin:var(--spaceXL)}.marginXS-top{margin-top:var(--spaceXS)}.marginS-top{margin-top:var(--spaceS)}.margin-top{margin-top:var(--space)}.marginM-top{margin-top:var(--spaceM)}.marginL-top{margin-top:var(--spaceL)}.marginXL-top{margin-top:var(--spaceXL)}.marginXS-bottom{margin-bottom:var(--spaceXS)}.marginS-bottom{margin-bottom:var(--spaceS)}.margin-bottom{margin-bottom:var(--space)}.marginM-bottom{margin-bottom:var(--spaceM)}.marginL-bottom{margin-bottom:var(--spaceL)}.marginXL-bottom{margin-bottom:var(--spaceXL)}.margin-none{margin:0}.margin-top-none{margin-top:0}.margin-bottom-none{margin-bottom:0}@property --colour{syntax:"<color>";inherits:true;initial-value:#1063a6}@property --colourText{syntax:"<color>";inherits:true;initial-value:#fff}:root{--radius:10px;--radiusS:5px;--grey:#dedede;--greyLight:#f2f2f2;--greyDark:#ccc;--trim:trim-both cap alphabetic;--cubic-bezier:cubic-bezier(.22,1,.36,1)}body{width:100%;height:100dvh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Oxygen,Open Sans,PingFang TC,sans-serif;display:flex;overflow:hidden}@media (orientation:portrait){body{display:block}}body{transition:--colour .7s}.border{border-radius:var(--radius)}.borderS{border-radius:var(--radiusS)}.box{border-radius:var(--radius);padding:var(--space)}.boxS{border-radius:var(--radiusS);padding:var(--spaceS)}main{width:100%;max-width:100%;height:100dvh;padding:var(--gapS);padding-left:0;overflow:scroll}@media (orientation:portrait){main{padding:var(--gapS);padding-bottom:4rem}}.dialog{z-index:1000;width:100dvw;height:100dvh;padding:var(--gapS);background-color:#fff;justify-content:center;align-items:center;display:flex;position:absolute}.dialog.hidden{display:none}.dialog .box{background:var(--grey);text-align:center;max-width:45ch}.menu-button{flex-basis:content;aspect-ratio:1;height:15px;transition:transform .4s}.menu-button .line{transform-origin:50%;stroke-width:1px;transition:transform .2s}.nav-container{padding:var(--gapS);width:100%;max-width:24rem}.nav-container button{background:var(--grey);z-index:100;border:none;border-radius:100px;flex-shrink:0;width:3rem;height:3rem;display:none}.nav-container button:hover{background:var(--greyDark)}@media (orientation:portrait){.nav-container{max-width:unset;height:100dvh;padding:var(--gapXS);z-index:10;-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none;background-color:#fff0;transition:-webkit-backdrop-filter .5s,backdrop-filter .5s,background-color .5s;position:absolute;bottom:0;left:0}.nav-container button{pointer-events:all;display:block}.nav-container nav{opacity:0;transition:transform .5s var(--cubic-bezier),opacity .2s ease;overflow:hidden;transform:translateY(10px)}.nav-container button svg,.nav-container button .line{transform:rotate(-90deg)}.nav-container.visible{opacity:1;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);pointer-events:all;background-color:#ffffffb3}.nav-container.visible nav{opacity:1;transform:translateY(0)}.nav-container.visible button svg,.nav-container.visible button .line{transform:rotate(0)}}nav{width:100%;height:100%;font-size:var(--fontS);flex-grow:1;overflow:hidden}nav .logo{background:var(--colour);flex-shrink:0}nav .menu-container{background:var(--greyLight);padding-top:0;overflow:hidden}@media (orientation:portrait){nav .logo{aspect-ratio:3/2;overflow:hidden}nav .logo img{height:100%}}.chat-container{overflow:scroll}.chat-container .chat{align-items:flex-end}.chat-container .mii{aspect-ratio:1;flex-shrink:0;width:3rem;position:sticky;bottom:0}.chat-container .mii img{width:3rem}.chat-container .messages{gap:2px}.message-container{height:-moz-fit-content;height:fit-content;display:grid;overflow:hidden}.message-container .message,.message-container .typing{background:var(--colour);width:-moz-fit-content;width:fit-content;height:100rem;min-height:2em;max-height:max-content;color:var(--colourText);grid-area:1/1;line-height:1.15;padding-top:.4em!important;padding-bottom:.45em!important}.message-container .typing{z-index:2;opacity:0;transform-origin:0 100%;max-height:2em;transition:transform var(--typing),height var(--typing),opacity var(--typing)calc(var(--delay) + .1s);transform:scale(1);padding:.6em!important}@starting-style{.message-container .typing{opacity:1;height:0;transform:scale(0);padding:0 var(--spaceS)!important}}.message-container .typing svg{width:auto;height:100%}.message-container .typing svg circle{fill:var(--colourText);animation:2s ease-out infinite both pulse}.message-container .typing svg circle:first-of-type{animation-delay:0s}.message-container .typing svg circle:nth-of-type(2){animation-delay:.25s}.message-container .typing svg circle:nth-of-type(3){animation-delay:.5s}.message-container .message{z-index:1;word-break:break-word;transition-property:opacity,height,padding;transition-delay:var(--delay);transition-duration:var(--message);align-self:end}@starting-style{.message-container .message{opacity:0;height:0}}.message-container .message>*+*,.message-container .message p+p{margin-top:var(--gapS)}.message-container .message summary{text-align:center;list-style:none}.message-container .message summary:before{content:"Read more..."}details[open] :is(.message-container .message summary):before{content:"Read less"}.message-container .message summary:hover{cursor:pointer}.message-container .message details[open]::details-content{padding-bottom:var(--gapS)}.menu{background:var(--grey)}.menu details:not([open]) svg,.menu details:not([open]) .line{transform:rotate(-90deg)}.menu details:not([open])::details-content{opacity:0;--duration:.2s;--opacity:0s;--delay:0s;flex:auto;height:0}.menu details::details-content{opacity:1;--duration:.5s;--opacity:.3s;--delay:calc(var(--duration)/1.5);--ease:var(--cubic-bezier);height:16.6em;transition:height var(--duration)var(--ease),flex-basis var(--duration)var(--ease),content-visibility var(--duration)var(--ease)allow-discrete,opacity var(--opacity)var(--delay)ease-in-out;flex:auto;display:block;overflow:hidden;content-visibility:visible!important}.menu summary{transition:background .2s}@media (orientation:landscape){.menu summary:hover{cursor:pointer;background:var(--greyDark)}}.menu menu{margin-top:-.1em;line-height:1.2;list-style-type:none}.menu a{text-decoration:none}.menu a:hover{opacity:.5}.home,.studio{gap:var(--gapS);grid-template-columns:repeat(6,1fr);grid-auto-rows:max-content;display:grid}@media (orientation:portrait){.home,.studio{grid-template-columns:repeat(3,1fr)}}:-webkit-any(.home,.studio) a{text-decoration:none}:-moz-any(.home,.studio) a{text-decoration:none}:is(.home,.studio) a{text-decoration:none}:-webkit-any(.home,.studio) article{aspect-ratio:1/1.5;width:100%;overflow:hidden;transform:scale(0)}:-moz-any(.home,.studio) article{aspect-ratio:1/1.5;width:100%;overflow:hidden;transform:scale(0)}:is(.home,.studio) article{aspect-ratio:1/1.5;width:100%;overflow:hidden;transform:scale(0)}:-webkit-any(.home,.studio) article.visible{transform-origin:50%;transition:transform 1s var(--delay)linear(0,.0105,.0396,.0836,.139,.203,.2728,.346,.4205,.4947,.567,.6363,.7016,.7623,.8179,.8681,.9127,.9518,.9854,1.0138,1.0373,1.0561,1.0707,1.0814,1.0887,1.093,1.0947,1.0942,1.0918,1.0879,1.0829,1.077,1.0705,1.0636,1.0566,1.0495,1.0426,1.036,1.0297,1.0238,1.0185,1.0136,1.0092,1.0054,1.0021,.9993,.9969,.9951,.9936,.9925,.9917,.9913,.991,.991,.9912,.9916,.992,.9926,.9932,.9938,.9945,.9951,.9958,.9964,.997,.9976,.9981,.9986,.999,.9994,.9997,1,1.0002,1.0004,1.0006,1.0007,1.0008,1.0008,1.0008,1.0009,1.0008,1.0008,1.0008,1.0007,1.0007,1.0006,1.0005,1.0005,1.0004,1.0004,1.0003,1.0002,1.0002,1.0001,1.0001,1.0001,1,1,1,1,1);transform:scale(1)}:-moz-any(.home,.studio) article.visible{transform-origin:50%;transition:transform 1s var(--delay)linear(0,.0105,.0396,.0836,.139,.203,.2728,.346,.4205,.4947,.567,.6363,.7016,.7623,.8179,.8681,.9127,.9518,.9854,1.0138,1.0373,1.0561,1.0707,1.0814,1.0887,1.093,1.0947,1.0942,1.0918,1.0879,1.0829,1.077,1.0705,1.0636,1.0566,1.0495,1.0426,1.036,1.0297,1.0238,1.0185,1.0136,1.0092,1.0054,1.0021,.9993,.9969,.9951,.9936,.9925,.9917,.9913,.991,.991,.9912,.9916,.992,.9926,.9932,.9938,.9945,.9951,.9958,.9964,.997,.9976,.9981,.9986,.999,.9994,.9997,1,1.0002,1.0004,1.0006,1.0007,1.0008,1.0008,1.0008,1.0009,1.0008,1.0008,1.0008,1.0007,1.0007,1.0006,1.0005,1.0005,1.0004,1.0004,1.0003,1.0002,1.0002,1.0001,1.0001,1.0001,1,1,1,1,1);transform:scale(1)}:is(.home,.studio) article.visible{transform-origin:50%;transition:transform 1s var(--delay)linear(0,.0105,.0396,.0836,.139,.203,.2728,.346,.4205,.4947,.567,.6363,.7016,.7623,.8179,.8681,.9127,.9518,.9854,1.0138,1.0373,1.0561,1.0707,1.0814,1.0887,1.093,1.0947,1.0942,1.0918,1.0879,1.0829,1.077,1.0705,1.0636,1.0566,1.0495,1.0426,1.036,1.0297,1.0238,1.0185,1.0136,1.0092,1.0054,1.0021,.9993,.9969,.9951,.9936,.9925,.9917,.9913,.991,.991,.9912,.9916,.992,.9926,.9932,.9938,.9945,.9951,.9958,.9964,.997,.9976,.9981,.9986,.999,.9994,.9997,1,1.0002,1.0004,1.0006,1.0007,1.0008,1.0008,1.0008,1.0009,1.0008,1.0008,1.0008,1.0007,1.0007,1.0006,1.0005,1.0005,1.0004,1.0004,1.0003,1.0002,1.0002,1.0001,1.0001,1.0001,1,1,1,1,1);transform:scale(1)}:-webkit-any(.home,.studio) article figure{flex-grow:var(--grow);gap:var(--gapXS);--duration:4s;animation-name:bob;animation-duration:var(--duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--grow)*var(--duration)*-1);flex-direction:column;justify-content:flex-end;display:flex}:-moz-any(.home,.studio) article figure{flex-grow:var(--grow);gap:var(--gapXS);--duration:4s;animation-name:bob;animation-duration:var(--duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--grow)*var(--duration)*-1);flex-direction:column;justify-content:flex-end;display:flex}:is(.home,.studio) article figure{flex-grow:var(--grow);gap:var(--gapXS);--duration:4s;animation-name:bob;animation-duration:var(--duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-delay:calc(var(--grow)*var(--duration)*-1);flex-direction:column;justify-content:flex-end;display:flex}@media (orientation:landscape){:-webkit-any(.home,.studio) article figure:has(a:hover){animation-play-state:paused}:-moz-any(.home,.studio) article figure:has(a:hover){animation-play-state:paused}:is(.home,.studio) article figure:has(a:hover){animation-play-state:paused}:-webkit-any(.home,.studio) article figure:has(a:hover) h2{opacity:1}:-moz-any(.home,.studio) article figure:has(a:hover) h2{opacity:1}:is(.home,.studio) article figure:has(a:hover) h2{opacity:1}}:-webkit-any(.home,.studio) article img{transition:transform .3s}:-moz-any(.home,.studio) article img{transition:transform .3s}:is(.home,.studio) article img{transition:transform .3s}:-webkit-any(.home,.studio) article img:hover{transform:scale(.9)}:-moz-any(.home,.studio) article img:hover{transform:scale(.9)}:is(.home,.studio) article img:hover{transform:scale(.9)}:-webkit-any(.home,.studio) article h2{width:100%;max-height:max-content;font-size:var(--fontS);text-align:center;color:var(--colour);background:0 0;line-height:1.15}:-moz-any(.home,.studio) article h2{width:100%;max-height:max-content;font-size:var(--fontS);text-align:center;color:var(--colour);background:0 0;line-height:1.15}:is(.home,.studio) article h2{width:100%;max-height:max-content;font-size:var(--fontS);text-align:center;color:var(--colour);background:0 0;line-height:1.15}@media (orientation:landscape){:-webkit-any(.home,.studio) article h2{opacity:0;transition:opacity .1s}:-moz-any(.home,.studio) article h2{opacity:0;transition:opacity .1s}:is(.home,.studio) article h2{opacity:0;transition:opacity .1s}}@media (orientation:portrait){:-webkit-any(.home,.studio) article h2{font-size:.75rem}:-moz-any(.home,.studio) article h2{font-size:.75rem}:is(.home,.studio) article h2{font-size:.75rem}}.student{gap:var(--gap);flex-direction:column;display:flex}.student .student-work{width:90%;max-width:80rem}.student .student-work:nth-of-type(2n),.student .student-work:nth-of-type(2n) figure>*,.student .student-work:nth-of-type(2n) figure img,.student .student-work:nth-of-type(2n) .text{margin-left:auto}.about,.students{gap:var(--gap);flex-direction:column;display:flex}:-webkit-any(.about,.students) section{gap:2px;width:90%;max-width:80rem}:-moz-any(.about,.students) section{gap:2px;width:90%;max-width:80rem}:is(.about,.students) section{gap:2px;width:90%;max-width:80rem}:-webkit-any(.about,.students) .columns{column-count:2}:-moz-any(.about,.students) .columns{column-count:2}:is(.about,.students) .columns{column-count:2}:-webkit-any(.about,.students) .columns h3{column-span:all}:-moz-any(.about,.students) .columns h3{column-span:all}:is(.about,.students) .columns h3{column-span:all}:-webkit-any(.about,.students) .columns li{break-inside:avoid-column}:-moz-any(.about,.students) .columns li{break-inside:avoid-column}:is(.about,.students) .columns li{break-inside:avoid-column}@media (orientation:portrait){:-webkit-any(.about,.students) .columns{column-count:1}:-moz-any(.about,.students) .columns{column-count:1}:is(.about,.students) .columns{column-count:1}}:-webkit-any(.about,.students) .box{background:var(--colour);color:var(--colourText);padding:var(--gap);width:-moz-fit-content;width:fit-content;max-width:50rem;line-height:1.2}:-moz-any(.about,.students) .box{background:var(--colour);color:var(--colourText);padding:var(--gap);width:-moz-fit-content;width:fit-content;max-width:50rem;line-height:1.2}:is(.about,.students) .box{background:var(--colour);color:var(--colourText);padding:var(--gap);width:-moz-fit-content;width:fit-content;max-width:50rem;line-height:1.2}:-webkit-any(.about,.students) .box h3{margin-bottom:1em}:-moz-any(.about,.students) .box h3{margin-bottom:1em}:is(.about,.students) .box h3{margin-bottom:1em}.awards :-webkit-any(:-webkit-any(.about,.students) .box h3){margin-bottom:.6em}.awards :-moz-any(:-moz-any(.about,.students) .box h3){margin-bottom:.6em}.awards :is(:is(.about,.students) .box h3){margin-bottom:.6em}:-webkit-any(.about,.students) .box li span{line-height:1;display:block}:-moz-any(.about,.students) .box li span{line-height:1;display:block}:is(.about,.students) .box li span{line-height:1;display:block}.about :-webkit-any(:-webkit-any(.about,.students) .box) li+li{margin-top:.6em}.about :-moz-any(:-moz-any(.about,.students) .box) li+li{margin-top:.6em}.about :is(:is(.about,.students) .box) li+li{margin-top:.6em}:-webkit-any(.about,.students) a{text-decoration:none}:-moz-any(.about,.students) a{text-decoration:none}:is(.about,.students) a{text-decoration:none}:-webkit-any(.about,.students) a:hover{opacity:.8}:-moz-any(.about,.students) a:hover{opacity:.8}:is(.about,.students) a:hover{opacity:.8}.student-work .text{max-width:max-content;font-size:var(--fontS);background:var(--colour);color:var(--colourText);line-height:1.15;padding-top:.4em!important;padding-bottom:.45em!important}.student-work .text>*+*,.credits li+li{margin-top:.6em}figure{display:block}figure img{width:auto;max-width:100%;max-height:calc(100dvh - (var(--gapS)*2));display:block}.thumbnail :is(figure img){height:auto}figure iframe{border-radius:var(--radius)}figure figcaption{font-size:var(--fontS);text-box:trim-both text alphabetic;margin-top:.3em;line-height:1.2em}media-controller{font-size:var(--fontS);--media-control-height:1.25rem;--media-control-display:flex;--media-tooltip-display:none;--media-preview-box-display:none;--media-primary-color:var(--colourText);--media-secondary-color:var(--colour);--media-background-color:var(--media-secondary-color);--media-control-hover-background:var(--media-secondary-color);display:block}media-controller media-control-bar{--media-range-padding:0;--media-range-padding-left:var(--gapXS);--media-range-padding-right:var(--gapXS);gap:var(--gapS)}.video{--media-primary-color:white;--media-secondary-color:transparent;width:auto;max-width:100%;height:auto;max-height:100%}.video.portrait{aspect-ratio:9/16;max-height:calc(100dvh - (var(--gapS)*2))}.video.landscape{aspect-ratio:16/9}.video media-control-bar{padding:.8rem 1rem}.audio{width:100%;padding:1rem}@media (orientation:landscape){.audio{max-width:50rem}}html.is-changing .transition-fade{opacity:1;transition:opacity .25s}html.is-animating .transition-fade{opacity:0}@keyframes pulse{0%{opacity:.2}50%{opacity:.9}to{opacity:.2}}@keyframes bob{0%{flex-grow:0}to{flex-grow:1}}
