@media(min-width:800px){img{margin-left:5px}.hamburger{display:none}.standard{overflow:hidden;left:0;right:0;background-color:var(--base-1);border-style:solid;border-width:1px;border-color:gray}.standard-link{float:right;font-size:16px;text-align:center;padding:14px 16px;text-decoration:none;color:var(--sol-cyan)}.title-standard{float:left;font-size:20px;padding:12px 16px;color:var(--sol-green)!important}.dropdown{float:right;overflow:hidden}.dropdown .dropbtn{font-size:16px;border:none;outline:none;color:var(--sol-cyan);padding:14px 20px 14px 16px;background-color:inherit;font-family:inherit;font-weight:700;margin:0}.dropdown-content{display:none;position:absolute;background-color:var(--base-2);width:112px;box-shadow:0 8px 16px #0003;z-index:1}.dropdown-content a{float:none;color:var(--sol-cyan);padding:12px 16px;text-decoration:none;display:block;text-align:left}.dropdown-content a:hover{background-color:#ddd}.dropdown:hover .dropdown-content{display:block}}@media(max-width:800px){.standard{display:none}.hamburger{display:flex}.hamburger{min-width:95vw;border:solid;border-color:gray;border-width:1px;margin:none;padding:0;height:50px;overflow:hidden;background-color:var(--base-1);vertical-align:center;justify-content:space-between}.hamburger-drop{min-width:100%;display:flex;align-items:center;border-right:solid;border-left:solid;border-bottom:solid;border-color:gray;border-width:1px;height:35px;overflow:hidden;background-color:var(--base-2);vertical-align:center}.logo-title{display:flex;flex-direction:row}.title{display:flex;flex-direction:row;color:var(--sol-cyan)!important;padding-top:10px;padding-left:10px;text-decoration:none;font-size:20px;display:block}.hamburger h2{padding-left:5px;text-decoration:none;vertical-align:middle}.hamburger-drop a{color:var(--sol-cyan);padding-left:16px;text-decoration:none;font-size:15px}.ham-div a:hover{color:#000}@media(prefers-color-scheme:light){.title{color:var(--sol-blue)}}@media(prefers-color-scheme:dark){.title{color:var(--sol-green)}}}.logo{float:left;border-radius:100%;max-height:40px;padding-top:5px!important;padding-left:5px!important}@media(min-width:810px){.main-content{margin:10px;width:800px;color:var(--blue)}}@media(max-width:810px){.main-content{margin:10px;max-width:800px;color:var(--blue)}}.section-header{display:flex;height:50px;justify-content:center;align-items:center;color:var(--sol-magenta);border-bottom:dotted;border-color:var(--sol-green);margin:0;padding:0}.school-pic{max-width:300 px;max-height:300px;width:40vw;height:40vw;margin:auto}@media(min-width:760px){.school-card-wide{display:flex;flex-direction:row;vertical-align:middle;width:95%;max-width:800px}.school-card-narrow{display:none}}@media(max-width:760px){.school-card-wide{display:none}.school-card-narrow{display:flex;flex-direction:column;margin-top:10px;vertical-align:middle}}a{font-weight:700;color:var(--sol-magenta)}h5{color:var(--sol-green)}@media(min-width:530px){.title-card-wide{display:block}.title-card-narrow{display:none}}@media(max-width:530px){.title-card-wide{display:none}.title-card-narrow{display:flex;flex-direction:column;margin-bottom:25px}}.title-row{height:25px;margin:0;display:flex;justify-content:space-between;vertical-align:middle}.projects-page{padding:1rem 0}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:100%}@media(max-width:640px){.projects-grid{grid-template-columns:1fr}}.project-card-link{text-decoration:none;color:inherit;display:block;height:100%}.project-card{height:100%;display:flex;flex-direction:column;background:var(--base-2);border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000001a,0 10px 20px #00000014;transition:transform .2s ease,box-shadow .2s ease}.project-card-link:hover .project-card{transform:translateY(-4px);box-shadow:0 8px 12px #0000001f,0 16px 32px #0000001a}.project-card-snapshot{aspect-ratio:16 / 10;overflow:hidden;background:var(--base-1);width:100%;min-width:0;flex-shrink:0;margin:0;padding:0}.project-card-snapshot img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;margin:0;padding:0;vertical-align:bottom}.project-card-snapshot-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--base-1) 0%,var(--base-3) 100%)}.project-card-title{margin:0;padding:1rem 1.25rem .5rem;font-size:1.25rem;font-weight:600;color:var(--sol-orange)}.project-card-description{margin:0;padding:0 1.25rem 1.25rem;font-size:.95rem;line-height:1.5;color:inherit;flex:1}.bot-status{color:var(--sol-red)}.square{background:#fff;color:#000;border:1px outset #999;border-radius:0;float:left;font-size:45px;font-weight:700;line-height:34px;height:5vw;min-height:75px;margin-right:-1px;margin-top:-1px;padding:0;text-align:center;width:5vw;min-width:75px}.win-sq{background:#00b7ff}.status{margin-bottom:10px}.app{display:flex;justify-content:center;align-items:center;min-height:80vh;width:100%}@media(min-width:480px){.board-and-hist{display:flex;flex-direction:row;justify-content:center;color:var(--sol-green)!important}}@media(max-width:480px){.board-and-hist{display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--sol-green)!important}.game-info{margin-left:0}.history-list{padding-inline-start:1.5rem}}.board{display:flex;flex-direction:column;text-align:center}.game-info{margin-left:20px}.history-button{max-height:25px;width:135px;margin-bottom:5px}.bot-selector{margin:auto;min-width:200px;align-items:center;text-align:center}.bot-slider{min-width:200px;accent-color:var(--sol-violet)}.block{display:flex;flex-direction:column;border-color:#000;border-style:solid;border-width:1px;margin:0;padding:0}.blockRow{padding:0;margin:0}input{background-color:var(--base-1);text-align:center;border-color:#000;border-style:solid;border-radius:0;padding:0;margin:0;border-spacing:0;font-size:x-large;caret-color:transparent}@media(prefers-color-scheme:dark){input{color:var(--sol-cyan)}}@media(prefers-color-scheme:light){input{color:var(--sol-blue)}}@media(max-width:380px){input{width:7.5vw;height:7.5vw;max-width:50px;max-height:50px;min-width:25px}}@media(min-width:380px)and (max-width:768px){input{width:8vw;height:8vw;max-width:50px;max-height:50px;min-width:30px}}@media(min-width:768px){input{width:50px;height:50px}}.prefilled{pointer-events:none;color:#000}.boardRow{display:flex;flex-direction:row;justify-content:center}.tools{display:flex;justify-content:center}.timer-display{color:#000;border-style:solid;border-color:#000;border-radius:20%;font-size:large;background-color:#add8e6;min-width:60px;text-align:center;vertical-align:center;margin:auto}.toolbar-div{display:flex;flex-direction:row;padding-bottom:3px;max-width:500px}.toolbar-narrow{display:none}.toolbar-button{margin:auto;border:solid;border-color:#000;background-color:#f0f8ff;color:#2792d5}@media(max-width:460px){.toolbar-div{display:none}.toolbar-narrow{display:flex;flex-direction:column;width:100%;box-sizing:border-box;padding:0 5px}.toolbar-narrow-row{display:flex;flex-direction:row;margin-bottom:5px;width:100%;box-sizing:border-box;gap:5px}.toolbar-button{height:50px;flex:1;min-width:0}}@media(min-width:460px)and (max-width:768px){.toolbar-button{height:50px;margin:10px;width:90px;font-size:15px;font-weight:700}}@media(min-width:768px){.toolbar-button{height:50px;margin:10px;width:100px;font-size:15px;font-weight:700}}.game-selector-div{display:flex;flex-direction:row;justify-content:center}.selector{margin:10px;font-weight:700;background-color:#f0f8ff;color:var(--sol-green);text-align:center;min-width:150px}.solved-message-backdrop{position:fixed;inset:0;z-index:1080;box-sizing:border-box;width:100%;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding-top:max(1.25rem,env(safe-area-inset-top,0px));padding-right:max(1.25rem,env(safe-area-inset-right,0px));padding-bottom:max(1.25rem,env(safe-area-inset-bottom,0px));padding-left:max(1.25rem,env(safe-area-inset-left,0px));background-color:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.solved-message-panel{width:min(420px,100%);margin:0;padding:1rem;background-color:#f0f8ff;border:none;border-radius:10px;box-shadow:0 12px 40px #0000002e;text-align:center}.solved-message-panel.alert{margin:0}.solved-message-title{font-size:1.35rem;margin:0 0 .75rem;font-weight:700}.solved-message-body{margin:0 0 1.25rem;line-height:1.5}.solved-message-actions{display:flex;flex-direction:row;margin:auto;justify-content:center;gap:.65rem}.solved-message-label{font-size:.9rem;font-weight:600;margin-bottom:-.25rem}.solved-message-select{font-weight:700;background-color:#f0f8ff;color:var(--sol-green);text-align:center;min-height:2.5rem}.solved-message-button{font-weight:700;background-color:#f0f8ff;color:var(--sol-blue);text-align:center;min-height:2.5rem}.demonstration-image{width:95vw;max-width:800px;margin-top:10px}@media(min-width:650px){.skill-list{columns:4;justify-content:center}}@media(max-width:650px)and (min-width:460px){.skill-list{columns:3;justify-content:center}}@media(max-width:460px){.skill-list{columns:2;justify-content:center}}.section-header{display:flex;height:50px;justify-content:center;align-items:center;border-bottom:dotted;border-color:var(--sol-green);margin:0;padding:0}.section-text{text-align:left}a{color:var(--sol-magenta);text-decoration:none;font-weight:700}strong{color:var(--sol-orange)}.links-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:1.25rem 0 2rem;max-width:100%}@media(max-width:640px){.links-grid{grid-template-columns:1fr}}.link-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem 1rem;background:var(--base-2);border-radius:12px;text-decoration:none;color:inherit;box-shadow:0 4px 6px #0000001a,0 10px 20px #00000014;transition:transform .2s ease,box-shadow .2s ease;min-height:100px}.link-card:hover{transform:translateY(-4px);box-shadow:0 8px 12px #0000001f,0 16px 32px #0000001a}.link-card-title{font-size:1.2rem;font-weight:700;color:var(--sol-orange);margin-bottom:.35rem}.link-card-desc{font-size:.9rem;opacity:.9}.link-card-icon{max-height:100px;height:100px;margin-bottom:10px}:root{width:100%;height:100%;font-family:Cascadia Mono,monospace,sans-serif;--sol-blue: #268bd2;--sol-cyan: #2aa198;--sol-green: #859900;--sol-violet: #6c71c4;--sol-magenta: #d33682;--sol-red: #dc322f;--sol-orange: #cb4b16;--sol-yellow: #b58900}@media(prefers-color-scheme:light){:root{--base-1: #eae4d2;--base-2: #f1ecdc;--base-3: #fdf6e3;color:var(--sol-blue);background-color:var(--base-3)}a:hover{color:var(--sol-violet)}button{background-color:#f9f9f9}}@media(prefers-color-scheme:dark){:root{--base-1: #586e75;--base-2: #073642;--base-3: #002b36;color:var(--sol-blue);background-color:var(--base-3)}a:hover{color:#747bff}button{background-color:#f9f9f9}}body{display:flex;justify-content:center;align-items:center}.contact-intro{margin-bottom:1.25rem}.contact-form{max-width:32rem;width:100%;margin:0 auto 2rem;display:flex;flex-direction:column;gap:1.25rem}.contact-field{display:flex;flex-direction:column;gap:.35rem}.contact-field label{font-weight:600;color:var(--sol-orange)}.contact-field input,.contact-field textarea{font-family:inherit;font-size:1rem;padding:.5rem .65rem;border:1px solid var(--base-1);border-radius:6px;background:var(--base-2);color:inherit;width:100%;min-width:100%;box-sizing:border-box}.contact-field input:focus,.contact-field textarea:focus{outline:2px solid var(--sol-violet);outline-offset:2px}.contact-error{font-size:.875rem;color:var(--sol-red)}.contact-actions{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}.contact-actions button[type=submit]{padding:.5rem 1.25rem;font-weight:600;cursor:pointer;border-radius:6px;border:1px solid var(--base-1)}.contact-actions button[type=submit]:disabled{opacity:.7;cursor:not-allowed}.contact-mailto-note{margin:0;font-size:.9rem;max-width:32rem}.contact-mailto-note a{color:var(--sol-magenta);font-weight:700}.contact-status{max-width:32rem;margin:0 auto;padding:.75rem 1rem;border-radius:6px}.contact-status--success{background:color-mix(in srgb,var(--sol-green) 15%,transparent);border:1px solid var(--sol-green)}.contact-status--error{background:color-mix(in srgb,var(--sol-red) 12%,transparent);border:1px solid var(--sol-red)}.contact-link-button{background:none;border:none;padding:0;margin-left:.25rem;color:var(--sol-magenta);font-weight:700;text-decoration:underline;cursor:pointer;font-family:inherit;font-size:inherit}.submit-button{color:var(--sol-blue)}
