@import url(https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap);:root{--header-height:2rem}body,html{height:100%;margin:0;overflow:hidden}body{margin:0;padding:0;font-family:'Times New Roman',Times,serif}button{font-family:'Times New Roman',Times,serif}@keyframes occasionalWiggle{0%,100%,60%{transform:rotate(0)}70%,90%{transform:rotate(2deg)}80%{transform:rotate(-2deg)}}.cage{width:min(50vw,50vh);height:min(50vw,50vh);position:absolute;cursor:pointer;touch-action:none;z-index:3}#home{flex-direction:row}@media (orientation:portrait){#home{flex-direction:column-reverse}}#cage{width:min(50vw,50vh);height:min(50vw,50vh);z-index:0}.hidden{display:none}.transparent{opacity:0;pointer-events:none}.cageBackground{width:min(50vw,50vh);height:min(50vw,50vh);border:1px solid #000;position:absolute;transition:opacity .5s}#cage1{z-index:4}#cage,#cage1,#cage1Background{top:calc(50vh - min(25vh,25vw));left:calc(50vw - min(25vh,25vw))}#cage2,#cage2Background{top:min(5vh,5vw);left:min(5vh,5vw)}#cage3,#cage3Background{top:calc(100vh - min(55vh,55vw));left:calc(100vw - min(55vh,55vw))}#cage2Background{background-color:rgba(240,248,255,.3)}#cage3Background{background-color:rgba(238,232,170,.2)}@supports (width:1dvw){.cage,.cageBackground{width:min(50dvw,50dvh);height:min(50dvw,50dvh)}#cage1,#cage1Background{top:calc(50dvh - min(25dvh,25dvw));left:calc(50dvw - min(25dvh,25dvw))}#cage2,#cage2Background{top:min(5dvh,5dvw);left:min(5dvh,5dvw)}#cage3,#cage3Background{top:calc(100dvh - min(55dvh,55dvw));left:calc(100dvw - min(55dvh,55dvw))}#container{width:100dvw;height:100dvh}}footer{position:absolute;bottom:16px;width:100%;text-align:center;z-index:10;pointer-events:none}footer button{pointer-events:auto}#start{font-weight:700;font-size:1rem;color:#000;background-color:#fff;padding:8px 16px;border:1px solid #000;cursor:pointer;transition:background-color .15s,transform 50ms,opacity .5s}#start:hover{background-color:#f0f8ff}#start:active{background-color:#d3d3d3;transform:translateY(1px)}#intro{padding:2rem}#intro>*{transition:opacity .7s ease var(--delay, 0)}#intro.transparent>*{opacity:0}.site-title{font-size:clamp(1rem, 6vw, 1.5rem);margin:0}.role{font-size:clamp(.8rem,43vw, 1rem);margin:.5rem 0}.cipher-text{--cipher-cell-width:1ch;display:inline-grid;grid-auto-columns:var(--cipher-cell-width);grid-auto-flow:column;font-family:"Courier Prime","Courier New",Courier,monospace;font-size:.9em;font-variant-numeric:tabular-nums;font-weight:400;height:.95em;line-height:1;margin:0 .06em;opacity:.92;overflow:visible;text-align:center;vertical-align:.01em;width:calc(var(--cipher-length,8) * var(--cipher-cell-width));cursor:pointer;user-select:none}.cipher-redaction{user-select:none;white-space:nowrap}.cipher-text--startup{--cipher-length:9}.cipher-text--program{--cipher-length:2}.cipher-text--batch{--cipher-length:3}.cipher-text:focus{outline:0}.cipher-text:focus-visible{outline:black solid 1px;outline-offset:2px}.cipher-character{color:inherit;cursor:pointer;display:inline-block;position:relative;text-align:center;user-select:none;width:var(--cipher-cell-width)}.cipher-character:active,.cipher-text:active{cursor:grabbing}.cipher-character::after{content:"";position:absolute;top:-.2em;right:0;bottom:0;left:0;background:#000;opacity:calc(1 - var(--reveal, 0));transition:opacity var(--reveal-duration, .62s) ease}.cipher-text:focus-visible .cipher-character{--reveal:1;--reveal-duration:0.14s}#links{display:flex;gap:clamp(.8rem,4vw,1rem);margin-top:1rem}#links a{font-size:clamp(.8rem, 4vw, 1rem);font-weight:700;text-decoration:none;transition:color .2s}#links a:hover{color:#1877f2}a{color:#000;text-decoration:none}a:hover{color:#1877f2;text-decoration:underline}.sections{height:100%;overflow-y:auto;overscroll-behavior-y:contain;scroll-snap-type:y mandatory;scroll-behavior:smooth}section{scroll-snap-align:start;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:100vh;scroll-behavior:smooth}@supports (width:1dvh){section{min-height:100dvh}}#about div{max-width:80%}.about-content{max-width:600px;width:100%;margin:0 auto;padding:0 1rem;box-sizing:border-box;text-align:center}.about-content p{margin:1rem 0;line-height:1.5}.about-rule{width:10%;margin:1rem auto;border:none;border-top:1px solid #ccc}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:1.5rem;width:80%;max-width:1000px;margin-top:2rem;margin-bottom:4rem;justify-content:center}.card{background:rgba(255,255,255,.6);border:1px solid #000;padding:1.25rem;box-shadow:0 1px 3px rgba(0,0,0,.05)}.card h2{margin:0 0 1rem;font-size:1rem;font-weight:600}.card h2 .cipher-text{font-size:1em;height:1em}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{display:inline-block;padding:.25rem .75rem;font-size:.875rem;font-weight:500;border:1px solid #000}.card p{display:block}.project-link{margin-top:auto}.tooltip{position:relative;cursor:pointer;display:inline-block;width:fit-content}.tooltip .tooltip-text{visibility:hidden;opacity:0;background:#222;color:#fff;text-align:center;padding:6px 10px;border-radius:6px;font-size:.85em;white-space:nowrap;position:absolute;bottom:125%;left:50%;transform:translateX(-50%);transition:opacity .15s;z-index:10;pointer-events:none}.tooltip:focus .tooltip-text,.tooltip:hover .tooltip-text{visibility:visible;opacity:1}.project-link.disabled{color:#888;cursor:not-allowed}@media (hover:none){.tooltip:active .tooltip-text{visibility:visible;opacity:1}}