*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden;background:#f0f0f0;margin:0;padding:0}:root{--font-display: "Fraunces", Georgia, serif;--font-heading: "Space Grotesk", -apple-system, sans-serif;--font-body: "Inter", -apple-system, sans-serif;--font-serif: "Instrument Serif", Georgia, serif;--font-mono: "Courier Prime", "Courier New", monospace;--font-editorial: "Crimson Pro", Georgia, serif;--white: #ffffff;--black: #0a0a0a;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--accent: #6366f1;--accent-light: #818cf8;--accent-dark: #4f46e5;--loading-blue: #3b82f6;--gh-header: #24292e;--lobby-bg: #fcfbf9;--manila: #f5edd6;--paper: #fffef7;--ink: #1e1b16;--muted: #7a7060;--clip-silver: #b0aba1;--folder-edge: #cdc3ad;--highlight: #c27d3a;--chalk-bg: #2b3a2e;--chalk-text: rgba(255, 255, 255, .88);--chalk-dim: rgba(255, 255, 255, .45);--paper-bg: #fdfbf5;--waterloo-gold: #ffd54f;--lab-green: #4caf50;--red-pen: #c0392b;--notebook-edge: #ddd5c4}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#00000040}::selection{background:#6366f133;color:inherit}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;padding:0}img{max-width:100%;display:block}@font-face{font-family:Portfolio Serif;src:url(/HamburgJ/assets/fraunces-DihXLNYH.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Public Sans;src:url(/HamburgJ/assets/public-sans-C17uhFdU.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:HamburgJ;src:url(/HamburgJ/assets/hamburgj-n6p2zon9.ttf) format("truetype");font-display:swap}@font-face{font-family:Bitter;src:url(/HamburgJ/assets/bitter-C8X_T8j_.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Source Sans;src:url(/HamburgJ/assets/source-sans-BqRLTx4X.woff2) format("woff2");font-weight:200 900;font-display:swap}@font-face{font-family:Righteous;src:url(/HamburgJ/assets/righteous-D5_VPOaF.ttf) format("truetype");font-display:swap}@font-face{font-family:Raleway;src:url(/HamburgJ/assets/raleway-DvTJ9m8N.ttf) format("truetype");font-display:swap}:root{--serif: "Portfolio Serif", Georgia, serif;--sans: "Public Sans", Arial, sans-serif;--ink: #202020;--muted: #696969}body{background:#fff;color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}html{scroll-behavior:smooth}button{color:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid #345cd6;outline-offset:6px}::selection{background:#e4e5fc;color:#171717}main:focus{outline:none}.skip-link{position:fixed;top:-100px;left:20px;padding:10px 16px;z-index:10001;background:#fff;border:1px solid #ccc;border-radius:6px}.skip-link:focus{top:16px}.site-shell{min-height:100svh}.room-header{max-width:1160px;margin:auto;padding:32px 36px 20px}.room-header a{color:#666;font-size:13px;display:inline-flex;align-items:center;gap:10px}.room-header a:hover{color:#111}.room-surface{max-width:1160px;margin:auto;padding:20px 36px 80px}.room-heading{font:600 clamp(40px,5vw,64px)/1.1 var(--serif);letter-spacing:-2px;margin:12px 0 52px}.room-next{padding:28px 0 0;margin-top:60px;border-top:1px solid #e6e6e6;text-align:right;font-size:14px}.room-next a:hover{text-decoration:underline;text-underline-offset:5px}.room-enter{animation:roomIn .5s ease both}.enter-work{transform-origin:15% 0;animation:folderIn .6s cubic-bezier(.2,.7,.2,1) both}.enter-education{animation:diplomaIn .6s ease both}.enter-projects{animation:screenIn .5s ease both}@keyframes roomIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes folderIn{0%{opacity:0;transform:perspective(1400px) rotateX(-9deg) translateY(20px)}to{opacity:1;transform:none}}@keyframes diplomaIn{0%{opacity:0;transform:rotate(-1deg) translateY(15px)}to{opacity:1;transform:none}}@keyframes screenIn{0%{opacity:0;clip-path:inset(0 0 10% 0)}to{opacity:1;clip-path:none}}.social-links{display:flex;justify-content:center;gap:28px;font-size:13px;color:#626262}.social-links a:hover{color:#111;text-decoration:underline;text-underline-offset:5px}.simple-link{display:inline-block;border-bottom:1px solid currentColor;font-size:13px;line-height:1.8}.simple-link:hover{opacity:.6}.room-end{margin-top:42px}.page-loading{padding:100px 20px;text-align:center;color:#666}.lobby{min-height:100svh;padding:110px 32px 80px;position:relative;display:flex;align-items:center;flex-direction:column;justify-content:center;background:#fff}.lobby-introduction{text-align:center}.lobby-introduction h1{font:650 clamp(38px,5.5vw,76px)/1.1 var(--serif);letter-spacing:-2.8px;margin:0 0 22px;text-align:center}.lobby-last-name{display:inline-flex;align-items:center;gap:12px;white-space:nowrap}.lobby-name-burger{width:clamp(44px,4.8vw,66px);height:clamp(44px,4.8vw,66px);object-fit:contain;flex:0 0 auto;animation:burgerFloat 4s ease-in-out infinite}.lobby-tagline{font:400 italic clamp(16px,1.6vw,21px)/1.6 var(--serif);color:#656565}.lobby-bio{font-size:13px;color:#747474;margin-top:10px}.replay-link{position:absolute;top:25px;left:32px;font-size:11px;color:#777;padding:6px 0}.replay-link:hover{color:#111}.portal-table{display:grid;grid-template-columns:repeat(4,1fr);gap:38px;max-width:990px;width:100%;margin:83px 0 65px;align-items:center}.portal{display:flex;justify-content:center;align-items:center;min-height:205px;perspective:800px;border-radius:6px}.portal-object{position:relative;transition:filter .3s,scale .3s;animation:objectFloat 6s ease-in-out infinite;will-change:transform}.portal:hover .portal-object,.portal:focus-visible .portal-object{scale:1.065;filter:drop-shadow(0 10px 9px #00000010);animation-play-state:paused}@keyframes objectFloat{0%,to{transform:translateY(0) rotate(var(--tilt, 0deg))}50%{transform:translateY(-9px) rotate(calc(var(--tilt, 0deg) + 1deg))}}.sticky-note{--tilt: -6deg;width:177px;height:182px;background:linear-gradient(155deg,#fff0a2,#fff3b7 70%,#eed88a);box-shadow:0 2px 2px #0000000c,4px 13px 16px -8px #4e411d35;padding:30px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.sticky-note:after{content:"";position:absolute;bottom:0;right:0;border:9px solid transparent;border-bottom-color:#fff;border-right-color:#fff;filter:drop-shadow(-1px -1px 1px #b9a75850)}.sticky-note>span:first-of-type{font-size:18px;font-weight:600;color:#514521}.note-scribble{font-family:HamburgJ,cursive;font-size:31px;margin-top:16px;color:#8a7434;transform:rotate(-5deg)}.note-pin{width:13px;height:13px;position:absolute;top:9px;left:50%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fb8472,#c44138 75%);box-shadow:2px 3px 4px #5b330b40}.folder-object{--tilt: 3deg;width:207px;height:162px;border-radius:4px;background:#dcb775;box-shadow:2px 9px 14px -5px #54452f30;animation-delay:-1.7s}.folder-object:before{content:"";position:absolute;top:-16px;left:0;width:87px;height:27px;border-radius:7px 12px 0 0;background:#dcb775}.folder-paper{position:absolute;background:#fffefb;width:87%;height:93%;left:6%;top:-4%;transform:rotate(-4deg);border:1px solid #e8dfcb;padding:18px;box-shadow:0 0 2px #51431730;transition:transform .3s}.folder-paper span{display:block;background:#dddcd5;width:70%;height:3px;margin:7px 0}.folder-paper span:last-child{width:43%}.folder-front{position:absolute;inset:15px 0 0;background:linear-gradient(130deg,#f6dfac,#ebce96);border-radius:4px;border-top:1px solid #ffeac4;box-shadow:0 -1px 3px #7464421c;display:flex;align-items:center;justify-content:center;transform-origin:bottom;transition:transform .3s}.folder-front>span{font-size:18px;font-weight:500;color:#654d30;margin-top:22px}.portal-work:hover .folder-front{transform:rotateX(-12deg)}.portal-work:hover .folder-paper{transform:translateY(-9px) rotate(-4deg)}.paperclip,.work-paperclip{position:absolute;border:3px solid #a9adb3;border-radius:10px;width:16px;height:44px;top:-18px;right:23px;transform:rotate(14deg);box-shadow:1px 1px 1px #fff inset,1px 1px 1px #0002}.paperclip:after,.work-paperclip:after{content:"";position:absolute;border:2px solid #b7bac0;width:6px;height:30px;left:1px;top:0;border-radius:6px;border-top-color:transparent}.diploma-object{--tilt: -3deg;width:206px;height:171px;padding:9px;border:1px solid #ded7c4;background:#fffdf6;box-shadow:1px 7px 12px -5px #4b443630;animation-delay:-3.4s}.diploma-object>div{height:100%;border:3px double #c8b37b;display:flex;flex-direction:column;align-items:center;padding-top:10px}.diploma-object img{width:44px;height:44px;object-fit:contain}.diploma-object span{font:11px Georgia,serif;margin-top:9px;color:#746240}.diploma-object strong{font:500 22px var(--serif);margin-top:7px}.diploma-object i{height:1px;width:60%;background:#d5c79e;margin-top:13px}.floppy-object{--tilt: 6deg;width:169px;height:185px;border-radius:5px 14px 5px 5px;background:linear-gradient(110deg,#424b5b,#2e3643);box-shadow:inset 0 0 0 2px #252d3a,inset 4px 0 3px #ffffff18,3px 8px 13px -4px #24283340;animation-delay:-4.8s}.floppy-metal{position:absolute;width:96px;height:66px;left:32px;top:0;background:linear-gradient(100deg,#9aa0a8,#e4e7e8 50%,#aeb5ba);border-radius:0 0 3px 3px;box-shadow:0 2px 3px #0003}.floppy-metal i{display:block;margin:8px 12px 0 auto;width:21px;height:45px;background:#2c3440;box-shadow:inset 1px 1px 2px #111}.floppy-label{position:absolute;bottom:10px;left:17px;right:17px;height:96px;border-radius:3px;background:#f9f6eb;border-top:14px solid #7895a1;padding:10px 11px}.floppy-label span{font-size:19px;font-weight:500}.floppy-label i{display:block;width:100%;height:1px;background:#d5d3c8;margin-top:9px}.floppy-hole{position:absolute;width:8px;height:8px;left:5px;bottom:7px;background:#fff;box-shadow:inset 1px 1px 2px #1118}.extras-link{margin-top:20px;font-size:11px;color:#848484}.extras-link:hover{color:#111}.documents-trigger{position:absolute;right:32px;bottom:28px;color:#999;padding:8px}.documents-trigger:hover{color:#b08a38}.chat-launcher{position:fixed;z-index:100;bottom:24px;right:24px;height:38px;display:flex;align-items:center;gap:8px;padding:0 14px 0 12px;border:1px solid #d9d9d5;border-radius:999px;background:#fffffff0;color:#272727;box-shadow:0 4px 16px #00000014;font-size:12px;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s}.chat-launcher:hover{transform:translateY(-2px);border-color:#bcbcb6;box-shadow:0 7px 20px #0000001f}.chat-launcher-dot{width:7px;height:7px;border-radius:50%;background:#43a56c;box-shadow:0 0 0 3px #43a56c1f}.legacy-opening{position:fixed;inset:0;z-index:10000;overflow:auto;background:#fff}.underworld{height:5800px;background:linear-gradient(#fff 0% 4%,#ebebeb 13%,#8b8b8b 30%,#282828 52%,#090909 70%,#000);position:relative;font:400 italic 18px/1.8 var(--serif);text-align:center}.underworld>p,.descent-bottom{position:absolute;left:24px;right:24px}.descent-hint{top:80px;color:#888}.descent-first{top:1550px;color:#222}.descent-second{top:3370px;color:#c9c9c9}.descent-bottom{bottom:180px;color:#a7a7a7}.descent-bottom button{font:inherit;font-size:14px;color:#909090;margin-top:70px;border-bottom:1px solid #555}.descent-bottom button:hover{color:#fff}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:58px 34px}.project-card{min-width:0}.project-visual-link{display:block;border-radius:5px;transition:transform .3s,box-shadow .3s}.project-visual-link:hover{transform:translateY(-4px);box-shadow:0 12px 25px -14px #0004}.project-preview{height:340px;border:1px solid #ddd;border-radius:5px;overflow:hidden;position:relative}.project-meta{padding:17px 0 0}.project-meta h3{font-size:19px;font-weight:550;margin-bottom:6px}.project-meta h3 a:hover{text-decoration:underline;text-underline-offset:4px}.project-meta>p{font-size:13px;color:#676767;line-height:1.8;max-width:440px}.project-detail{margin-top:10px;font-size:12px}.project-detail a{border-bottom:1px solid #aaa}.burger-preview{background:#fff;display:grid;place-items:center;font-family:HamburgJ,sans-serif}.burger-lockup{display:flex;flex-direction:column;align-items:center;gap:8px}.burger-lockup img{width:150px;height:150px;animation:burgerFloat 4s ease-in-out infinite}.burger-lockup>span{font-size:56px;line-height:1.2;color:#161616}@keyframes burgerFloat{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}.survivor-preview{background:#f7f7f3;color:#1d1c19;font-family:Source Sans,sans-serif}.survivor-masthead{height:61px;background:#1d1c19;color:#f4f1e8;display:flex;align-items:center;gap:8px;padding:0 22px;font:600 15px Bitter,serif}.torch-mark{color:#c45c28}.mini-menu{font:11px Source Sans,sans-serif;margin-left:auto;color:#cbc6bd}.survivor-preview-body{position:relative;height:279px;padding:56px 24px}.survivor-preview-body>div{position:relative;z-index:1}.survivor-preview-body h3{font:550 29px/1.3 Bitter,serif;letter-spacing:-1px}.survivor-preview-body em{font-style:normal;color:#b4421c}.survivor-preview-body>img{position:absolute;width:160px;height:240px;object-fit:contain;right:8px;top:14px;transform:rotate(7deg)}.robots-preview{background:#fff;padding:18px;font-family:Georgia,serif;display:flex;flex-direction:column}.robots-preview-top{padding:0 0 13px}.robots-preview-top>img{width:178px;height:72px;object-fit:contain}.robots-photo{flex:1;overflow:hidden;min-height:0}.robots-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 63%}.plant-preview{background:#eaf0df;border-color:#dce2d5;color:#334827;padding:32px 25px}.plant-copy{position:relative;z-index:1;width:56%}.plant-logo{display:flex;align-items:center;gap:7px;font:24px Righteous,sans-serif;letter-spacing:-.8px}.plant-logo img{width:28px;height:28px}.plant-copy>p{font:400 24px/1.5 Raleway,sans-serif;margin-top:62px;letter-spacing:-.7px}.plant-phone{position:absolute;width:159px;height:auto;right:10px;top:46px;transform:rotate(8deg);filter:drop-shadow(4px 5px 8px #21371c24);transition:transform .3s}.plantguru-card:hover .plant-phone{transform:rotate(4deg) translateY(-4px)}.plant-capstone{position:absolute;left:25px;bottom:16px;font-size:10px;color:#56644d}.route-work{background:#f3f1ec}.work-file{position:relative;background:#e6cf9b;border:1px solid #dac08e;border-radius:0 7px 7px;padding:17px;margin-top:43px;box-shadow:0 8px 24px #5544200c}.file-tab{position:absolute;left:-1px;top:-35px;background:#e6cf9b;border:1px solid #dac08e;border-bottom:0;border-radius:9px 14px 0 0;font-size:12px;padding:9px 25px;height:35px}.work-paper{background:#fffefa;padding:45px 43px 30px;box-shadow:0 2px 5px #65502f14;position:relative}.work-paperclip{top:-15px;right:37px;width:22px;height:64px;z-index:1}.work-paperclip:after{height:45px;width:11px}.work-paper .room-heading{font-size:46px;margin:0 0 38px}.job{display:flex;align-items:flex-start;gap:22px;padding:26px 0;border-top:1px solid #e6e3da}.company-logo-link{flex:0 0 62px;background:#fff;border:1px solid #ecebe6;border-radius:8px;overflow:hidden}.company-logo{width:62px;height:62px;object-fit:contain}.job-content{flex:1;min-width:0}.job-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.job-heading h2{font-size:17px;font-weight:600}.job-heading>span{font-size:11px;color:#777;flex-shrink:0}.job h3{font-size:13px;font-weight:400;margin:4px 0 11px;color:#62605b}.job p{font-size:13px;line-height:1.8;color:#79766f}.route-about .room-surface{max-width:1060px}.about-bio{max-width:795px;font-size:clamp(18px,2vw,23px);line-height:1.8;letter-spacing:-.4px}.about-bio p+p{margin-top:25px;color:#666}.about-bio a{border-bottom:1px solid #bbb}.about-bio a:hover{color:#5353af;border-color:currentColor}.comparison{margin:66px 0 45px;border:1px solid #e2e1ea;border-radius:14px;overflow:hidden;box-shadow:0 8px 35px -20px #37336630}.comparison-heading{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;gap:15px}.comparison-heading h2{font-size:20px;font-weight:550;letter-spacing:-.35px}.comparison-fine-print{font-size:10px;color:#7b7784;font-style:italic;white-space:nowrap}.comparison-scroll{overflow-x:auto}.comparison table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;min-width:610px}.comparison th,.comparison td{padding:19px 24px;border-top:1px solid #e7e5ee}.comparison thead th{font-weight:600;background:#f7f7fa}.comparison thead th:last-child{color:#574a94;background:linear-gradient(135deg,#eeebf9,#f9f1ff)}.comparison tbody th{width:36%;color:#302e36;font-weight:560;line-height:1.4}.comparison td{color:#74717d;line-height:1.55}.comparison td:last-child{color:#49405f;background:#fcfbff}.comparison-answer{display:inline;padding:3px 6px;border-radius:6px;font-weight:650;-webkit-box-decoration-break:clone;box-decoration-break:clone}.comparison-answer-blue{color:#22569d;background:#e9f2ff}.comparison-answer-coral{color:#a44734;background:#fff0eb}.comparison-answer-violet{color:#6548a8;background:#f0ebff}.comparison-answer-green{color:#29684c;background:#e8f6ed}.comparison-answer-gold{color:#80600c;background:#fff4ca}.comparison-answer-pink{color:#994064;background:#ffedf5}.route-about .social-links{justify-content:flex-start}.education-feature{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding:35px 0 58px;border-bottom:1px solid #e6e3d7}.waterloo-identity{display:flex;align-items:center;gap:25px}.waterloo-identity img{width:116px;height:116px;object-fit:contain}.waterloo-identity>span{font:500 31px/1.25 var(--serif);letter-spacing:-.8px}.education-details>span{color:#888;font-size:13px}.education-details h2{font-size:22px;font-weight:500;margin:9px 0}.education-details p{font-size:14px;color:#666}.education-details .honours-detail{font-size:11px;margin-top:17px;color:#888}.capstone-feature{margin-top:52px;display:grid;grid-template-columns:1.2fr 1fr;border:1px solid #dce3d4;background:#f2f6eb;border-radius:7px;padding:45px 45px 0;gap:30px;overflow:hidden}.capstone-feature>div:first-child{padding:20px 0 40px}.capstone-label{font-size:11px;color:#6c7a62}.capstone-feature h2{font:32px Righteous,sans-serif;color:#315329;display:flex;align-items:center;gap:10px;margin:16px 0 20px}.capstone-feature p{font-size:15px;color:#65705c;max-width:340px;margin:0 0 28px;line-height:1.9}.capstone-image{max-height:360px;display:flex;justify-content:center;align-items:flex-start;padding-top:5px}.capstone-image img{width:195px;height:auto;transform:rotate(8deg);filter:drop-shadow(4px 5px 10px #2c3b2325)}.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.extra-card{border:1px solid #dedede;border-radius:7px;text-align:left;padding:30px;transition:transform .2s;background:#fafafa}.extra-card:hover{transform:translateY(-3px)}.extra-card h2{font-size:21px;font-weight:500;margin-top:24px}.extra-card>p{font-size:13px;color:#777;margin-top:5px}.mini-battle{display:grid;grid-template-columns:repeat(4,32px);width:max-content;border:1px solid #617566}.mini-battle>span{width:32px;height:32px;display:grid;place-items:center;background:#e2eacb;border:1px solid #617566;font-size:24px}.mini-battle>span:nth-child(3n){background:#dce4ed}.mini-messenger{height:130px;border:1px solid #b8c3ca;background:#fff;font:13px Trebuchet MS,sans-serif;box-shadow:2px 3px #ddd}.mini-messenger>span{display:block;background:#2154af;color:#fff;padding:5px 10px}.mini-messenger>p{padding:20px 10px}.extra-row{border-bottom:1px solid #ddd;padding:18px 0;text-align:left;font-size:14px}.extra-row:hover{color:#666}.opening{position:fixed;inset:0;z-index:10000;background:#fff;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#24292f;overflow:hidden}.opening-scene{position:absolute;inset:0}.github-fakeout{height:100%;display:flex;flex-direction:column;background:#f6f8fa}.github-bar{background:#24292f;color:#fff;display:flex;gap:12px;align-items:center;padding:19px 30px}.github-bar strong{font-size:18px;letter-spacing:-.2px}.github-bar strong span{font-weight:400;opacity:.7}.github-body{flex:1;display:flex;justify-content:center;align-items:center;padding:30px 24px 100px;transition:padding .6s}.github-card{background:#fff;border:1px solid #d8dee4;box-shadow:0 3px 12px #1f232806;padding:40px 45px;width:460px;max-width:100%;border-radius:6px;text-align:center;transition:transform .6s}.verify-icon{width:44px;height:48px;border:2px solid #0969da;color:#0969da;border-radius:14px 14px 19px 19px;margin:0 auto 24px;display:grid;place-items:center;font-size:24px;background:#f0f6ff}.has-error .verify-icon{border-color:#cf3c39;color:#cf3c39;background:#fff4f3;border-radius:50%;height:44px}.github-url{font-size:12px;color:#737d89;margin-bottom:10px}.github-card h1{font-size:20px;font-weight:600;line-height:1.5;margin-bottom:22px}.fake-progress{height:5px;background:#eaeef2;border-radius:5px;overflow:hidden;margin-bottom:24px}.fake-progress span{display:block;height:100%;background:#0969da;transition:width .25s linear}.has-error .fake-progress span{background:#cf3c39}.github-card p:not(.github-url){font-size:12px;color:#69737d;margin:8px 0}.github-card small{font-size:11px;color:#9299a1}.github-card code{color:#a73532;font-size:11px;overflow-wrap:anywhere}.github-footer{background:#fff;border-top:1px solid #d8dee4;text-align:center;padding:18px 90px;font-size:11px;color:#7b838b}.intro-skip{position:fixed;bottom:14px;right:20px;font:11px system-ui,sans-serif;border:1px solid #d0d7de;border-radius:5px;background:#fff;padding:7px 12px;color:#57606a;z-index:5}.opening-coding .github-card{transform:translate(-170px,-20px)}.coding-window{position:absolute;right:4%;bottom:64px;width:490px;border:1px solid #4a4b4d;background:#202124;color:#dedfe3;border-radius:10px;box-shadow:0 20px 70px #0004;overflow:hidden;font:12px/1.6 Consolas,Courier New,monospace;animation:editorIn .4s cubic-bezier(.2,.7,.2,1) both;z-index:3}@keyframes editorIn{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}.coding-title{display:flex;align-items:center;gap:14px;background:#2a2b2e;padding:12px 15px;border-bottom:1px solid #414247;font:11px system-ui,sans-serif;color:#bbbcc2}.window-dots{display:flex;gap:5px}.window-dots i{width:8px;height:8px;border-radius:50%;background:#ec6a5f}.window-dots i:nth-child(2){background:#eabc57}.window-dots i:nth-child(3){background:#62c554}.coding-status{margin-left:auto;font-size:10px;color:#989ba2}.coding-conversation{padding:17px 19px;min-height:188px}.coding-line{display:grid;grid-template-columns:56px 1fr;gap:9px;margin:0 0 14px;align-items:start}.coding-line:last-child{margin-bottom:0}.coding-line b{font-size:11px;font-weight:400;color:#b5c8fa;padding-top:2px}.coding-line.copilot b{color:#b4cfb9}.coding-line p{margin:0}.typing-caret{display:inline-block;vertical-align:middle;width:6px;height:14px;background:#cfd1dc}.coding-diff{border-top:1px solid #383a40;padding:10px 19px;color:#8f949e;font-size:10px}.coding-diff>span{display:block}.opening-fixing .coding-diff>span:first-child{color:#db9b96}.opening-fixing .coding-diff>span:last-child{color:#9aceaa}.code-dots{float:right;letter-spacing:4px}.bad-portfolio{height:100%;background:repeating-linear-gradient(45deg,#ffe7fa,#ffe7fa 24px,#fff9b7 24px 48px);overflow:hidden;text-align:center;color:#5b08bd;font-family:Comic Sans MS,cursive}.bad-marquee{white-space:nowrap;background:#00ff93;color:#ec00ad;font-weight:900;padding:8px;letter-spacing:2px;border-bottom:4px dashed #fd00bc}.bad-nav{display:flex;justify-content:space-between;padding:13px 25px;color:#fffb00;background:#b600fa;align-items:center;border-bottom:5px ridge #00ffe7}.bad-nav strong{font-size:26px;text-shadow:2px 2px #f00}.bad-nav>span{font-size:13px}.bad-hero{position:relative;padding:29px 20px 24px}.bad-hero>p:first-of-type{font-size:22px;color:#ff2497}.bad-hero h1{font-family:Papyrus,fantasy;font-size:clamp(34px,6vw,77px);line-height:1.3;color:#f7008d;text-shadow:3px 3px #00ffe7,6px 6px #fff300;-webkit-text-stroke:1px #6c00ff}.bad-hero h2{font-family:Comic Sans MS,cursive;font-size:clamp(16px,2.6vw,35px);letter-spacing:7px;color:#00aa47;transform:rotate(-2deg);margin:9px 0;text-shadow:2px 2px #fafa00}.bad-hero>p:last-of-type{color:#432bff;font-size:16px}.bad-new{position:absolute;right:6%;top:15px;background:#fff000;border:3px dotted red;padding:9px;transform:rotate(12deg);font-size:12px;color:red}.bad-cta{display:inline-block;margin-top:20px;background:linear-gradient(90deg,#ff007b,#6f00ff,#00ffc8);color:#fff;padding:11px 28px;border:5px ridge #ffcc00;border-radius:30px;box-shadow:6px 6px #270094;font-size:20px;font-weight:700;transform:rotate(-4deg)}.bad-widgets{display:flex;gap:25px;padding:20px 40px;max-width:1000px;margin:0 auto}.bad-widgets section{flex:1;background:#cf0;border:5px dashed #ff169c;padding:16px;border-radius:20px 0}.bad-widgets section:nth-child(2){background:#87f1ff;border-color:#40f;transform:rotate(2deg)}.bad-widgets h3{color:red;font-size:20px}.bad-widgets p{font-size:12px;margin:3px 0}.bad-widgets b{float:right}.bad-skill{height:10px;background:linear-gradient(90deg,red,#ff00cf);border:1px solid #222}.bad-skill.other{width:95%;background:#00f}.bad-stars{color:#fd8b00;letter-spacing:6px}.bad-widgets blockquote{font-size:24px;color:#981fb9}.bad-footer{color:#fff;background:#00f;font-size:12px;padding:12px}.opening-fixing .bad-nav{filter:grayscale(1);opacity:.35;transform:translateY(-8px);transition:all 1s}.opening-fixing .bad-widgets>section:first-child{transform:rotate(-9deg) translateY(55px);opacity:.1;transition:all 1.4s}.opening-fixing .bad-widgets>section:last-child{transform:rotate(11deg) translateY(70px);opacity:.1;transition:all 1.4s .3s}.opening-fixing .bad-cta{opacity:0;transform:scale(.2) rotate(30deg);transition:all 1s}.opening-reveal{animation:revealCurtain 1.5s ease forwards;pointer-events:none}.opening-reveal .opening-scene{animation:destroyTemplate .85s cubic-bezier(.55,0,.85,.45) forwards}.opening-reveal .coding-window{animation:editorOut .6s ease forwards}.opening-reveal .intro-skip{opacity:0}@keyframes destroyTemplate{to{transform:perspective(900px) rotateX(22deg) scale(.7) translateY(110vh);opacity:0}}@keyframes editorOut{to{opacity:0;transform:translateY(35px)}}@keyframes revealCurtain{0%,50%{background:#fff;opacity:1}to{background:#fff;opacity:0}}@media(min-width:1500px){.lobby{padding-top:120px}.portal-table{margin-top:100px;margin-bottom:80px}}@media(max-width:1000px){.portal-table{gap:20px;max-width:810px}.portal-object{scale:.85}.portal:hover .portal-object,.portal:focus-visible .portal-object{scale:.92}.portal{min-width:0}.portal-object{flex-shrink:0}.job-heading{display:block}.job-heading>span{display:block;margin-top:3px}.mini-menu{display:none}.survivor-preview-body h3{font-size:25px}.survivor-preview-body>img{width:120px;right:-5px}.plant-phone{width:135px;right:-9px;top:74px}.plant-copy>p{font-size:20px}.plant-logo{font-size:22px}.waterloo-identity{gap:17px}.waterloo-identity>span{font-size:26px}.waterloo-identity img{width:90px;height:90px}}@media(max-width:720px){.lobby{padding:95px 24px 65px}.lobby-introduction h1{font-size:clamp(35px,6.7vw,48px);letter-spacing:-1.6px}.lobby-name-burger{width:42px;height:42px}.lobby-tagline{max-width:310px;margin:auto;font-size:17px}.lobby-bio{max-width:285px;margin:12px auto 0;font-size:12px}.portal-table{grid-template-columns:repeat(2,1fr);max-width:440px;margin:45px 0 38px;gap:28px 18px}.portal-object{scale:.9}.portal:hover .portal-object,.portal:focus-visible .portal-object{scale:.95}.portal{min-height:175px}.replay-link{left:24px}.room-header{padding:25px 24px 15px}.room-surface{padding:20px 24px 70px}.room-heading{font-size:44px;margin-bottom:35px}.project-grid{grid-template-columns:1fr;gap:40px}.project-preview{height:350px}.survivor-preview-body h3{font-size:31px}.survivor-preview-body>img{width:160px;right:12px}.mini-menu{display:inline}.plant-phone{width:175px;right:17px;top:45px}.plant-copy>p{font-size:25px}.plant-logo{font-size:25px}.work-file{padding:10px;margin-top:40px}.work-paper{padding:32px 24px 25px}.work-paper .room-heading{font-size:38px;margin-bottom:30px}.job{gap:16px}.company-logo-link{flex-basis:48px}.company-logo{width:48px;height:48px}.job-heading h2{font-size:16px}.job h3,.job p{font-size:12px}.education-feature{grid-template-columns:1fr;gap:35px;padding:10px 0 35px}.waterloo-identity>span{font-size:31px}.waterloo-identity img{width:100px;height:100px}.capstone-feature{padding:25px 24px 0;grid-template-columns:1.2fr 1fr;gap:16px}.capstone-feature p{font-size:13px}.capstone-feature h2{font-size:26px}.capstone-image img{width:170px;max-width:none}.capstone-image{padding-top:70px;max-height:350px}.comparison-heading{padding:20px}.comparison-heading h2{font-size:17px}.comparison{margin-top:45px}.comparison table{min-width:0;table-layout:fixed;font-size:11px}.comparison th,.comparison td{padding:16px 10px;overflow-wrap:break-word}.comparison tbody th{width:36%}.comparison thead th:nth-child(2){width:25%}.comparison thead th:last-child{width:39%}.extras-grid{gap:18px}.extra-card{padding:20px}.extra-card h2{font-size:18px}.mini-battle{grid-template-columns:repeat(4,26px)}.mini-battle>span{width:26px;height:26px}.mini-messenger{height:106px}.github-bar{padding:15px 20px}.github-body{padding:25px 20px 100px}.github-card{padding:30px}.opening-coding .github-body{align-items:flex-start;padding-top:25px}.opening-coding .github-card{transform:scale(.88);transform-origin:top center}.coding-window{width:calc(100% - 32px);max-width:490px;right:16px;bottom:60px}.coding-conversation{min-height:165px;padding:15px}.coding-title{font-size:10px;gap:10px}.bad-nav{padding:12px}.bad-nav>span{display:none}.bad-hero{padding:40px 15px 20px}.bad-hero h1{font-size:45px}.bad-hero h2{letter-spacing:2px;font-size:22px}.bad-hero>p:last-of-type{font-size:13px}.bad-new{top:8px;font-size:10px;padding:4px}.bad-widgets{padding:12px;gap:12px}.bad-widgets section{padding:10px}.bad-widgets h3{font-size:14px}.bad-widgets p{font-size:10px}.bad-widgets blockquote{font-size:19px}}@media(max-width:440px){.portal-table{gap:18px 5px;margin-top:35px;margin-bottom:30px}.portal-object{scale:.76}.portal:hover .portal-object,.portal:focus-visible .portal-object{scale:.8}.portal{min-height:153px}.lobby{padding-left:18px;padding-right:18px}.lobby-introduction h1{font-size:35px;letter-spacing:-1.4px}.lobby-bio{font-size:11px}.room-surface{padding-left:21px;padding-right:21px}.room-header{padding-left:21px}.room-heading{font-size:40px}.survivor-preview-body h3{font-size:26px}.survivor-preview-body>img{width:107px;right:0}.mini-menu{display:none}.plant-phone{width:135px;right:0;top:74px}.plant-copy>p{font-size:21px}.plant-logo{font-size:22px}.work-file{padding:7px}.work-paper{padding:32px 15px 25px}.job{gap:11px}.company-logo-link{flex-basis:40px}.company-logo{width:40px;height:40px}.job-heading h2{font-size:15px}.job-heading>span{font-size:10px}.job h3{line-height:1.6}.capstone-feature{grid-template-columns:1fr}.capstone-feature>div:first-child{padding-bottom:0}.capstone-image{padding-top:0;max-height:260px}.capstone-image img{width:170px}.extras-grid{grid-template-columns:1fr}.extra-row{padding:14px 0}.extra-card{display:block}.comparison-heading h2{font-size:16px}.comparison-heading{gap:10px;padding:19px 15px}.comparison-fine-print{font-size:9px;white-space:normal;text-align:right}.chat-launcher{bottom:18px;right:18px}.coding-window{font-size:11px}.coding-line{grid-template-columns:47px 1fr;gap:6px}.coding-title{padding:10px 12px}.coding-conversation{min-height:180px}}@media(max-width:360px){.lobby-introduction h1{font-size:30px}.portal-object{scale:.67}.portal:hover .portal-object,.portal:focus-visible .portal-object{scale:.7}.portal{min-height:142px}.portal-table{gap:12px 0}.survivor-preview-body h3{font-size:24px}.survivor-preview-body>img{top:-5px;right:6px;width:65px;height:65px}.plant-phone{width:108px;right:-8px;top:102px}.plant-copy{width:64%}.plant-copy>p{font-size:20px}.burger-lockup>span{font-size:48px}.github-card{padding:24px 20px}.github-card h1{font-size:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.portal-object{transform:rotate(var(--tilt, 0deg));will-change:auto}}
