a,
abbr,
acronym,
address,
applet,
big,
blockquote,
body,
caption,
cite,
code,
dd,
del,
dfn,
div,
dl,
dt,
em,
fieldset,
font,
form,
h1,
h2,
h3,
h4,
h5,
h6,
html,
iframe,
ins,
kbd,
label,
legend,
li,
object,
ol,
p,
pre,
q,
s,
samp,
small,
span,
strike,
strong,
sub,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
tr,
tt,
ul,
var {
    border: 0;
    margin: 0;
    padding: 0;
}

a {
    background-color: transparent;
    cursor: pointer;
    text-decoration: none;
    color: white;
    outline: 0;
    position: relative;
}

a:visited {
    color: white;
}

a:hover {
    color: white;
}

a:active {
    color: white;
}

a img {
    border: 0
}

h3 {
    font-family: "Michroma", sans-serif;
    font-size: 18px;
    margin-top: 1em;
}

body,
button,
input,
select,
textarea {
    font-family: "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    font-weight: 400;
    text-transform: none;
    font-size: 17px;
    line-height: 1.5
}

body {
    overflow: hidden;
    background-color: rgb(0, 0, 0);
    font-family: "Roboto", sans-serif;
    line-height: 1.5;
    color: #cccccc;
}

html {
    font-family: sans-serif;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

canvas {
    position: fixed;
    width: 100%;
    height: 100%;
    min-width: 640px;
    min-height: 320px;
    top: 0;
    left: 0;
    background-color: transparent;
    z-index: -100;
}

#header {
    display: table;
    width: 100%;
    min-width: 640px;
    padding: 0%;
    margin: 0%;
}

#maintitle {
    display: table-cell;
    vertical-align: middle;
    background-color: #502;
    width: 100%;
    height: 45px;
    z-index: 100;
}

#mainnav {
    z-index: 110;
    width: 100%;
    background-color: #800033;
    display: table-cell;
    vertical-align: middle;
    font-variant-caps: titling-caps;
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 18px;
}

#mainmenulist {
    text-align: center;
    list-style: none;
}

.title-link {
    font-family: "Sarpanch", sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 28px;
    margin: 0;
    line-height: 1.2em;
    display: inline-block;
}

.col-left {
    width: 45%;
    float: left;
    text-align: center
}

.col-right {
    width: 45%;
    float: right;
    text-align: center
}

.mainmenuitem {
    display: inline-block;
    min-width: 96px;
    padding-left: 40px;
    padding-right: 40px;
    vertical-align: middle;
    box-shadow: 0 0 1px transparent;
    position: relative;
    -webkit-transform: perspective(5px) translateZ(0);
    transform: perspective(5px) translateZ(0);
    -webkit-transition-property: color;
    transition-property: color;
    -webkit-transition-duration: .3s;
    transition-duration: .3s
}

.linkdash,
.linkdashlt {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.linkdash a::before,
.linkdash::before {
    content: '';
    width: 100%;
    height: 6px;
    margin: -3px 0 0;
    background: #502;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    -webkit-transition: -webkit-transform .4s;
    transition: transform .4s;
    -webkit-transition-timing-function: cubic-bezier(.7, 0, .3, 1);
    transition-timing-function: cubic-bezier(.7, 0, .3, 1);
}

.linkdash a:hover::before,
.linkdash:hover::before {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
}

.linkdashlt a::before,
.linkdashlt::before {
    content: '';
    width: 100%;
    height: 6px;
    margin: -3px 0 0;
    background: #800033;
    position: absolute;
    left: 0;
    top: 50%;
    -webkit-transform: translate3d(-100%, 0, 0);
    transform: translate3d(-100%, 0, 0);
    -webkit-transition: -webkit-transform .4s;
    transition: transform .4s;
    -webkit-transition-timing-function: cubic-bezier(.7, 0, .3, 1);
    transition-timing-function: cubic-bezier(.7, 0, .3, 1);
}

.linkdashlt a:hover::before,
.linkdashlt:hover::before {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
}

.siteinfo {
    padding: 10px 20px 10px 20px;
    color: #999999;
    background-color: #550022;
    font-size: 16px;
    text-align: center;
    height: 45px;
    position: fixed;
    bottom: 0;
    width: 100%;
    min-width: 640px;
}

.footer-bar {
    float: right;
    text-align: right;
    position: relative;
    left: -30px;
}

.footer-sub-right {
    float: right;
    position: relative;
}

.footer-sub-left {
    float: right;
    position: relative;
    left: -10px;
    top: 12px;
}

.copyright {
    float: left;
}

.main {
    padding-bottom: 45px;
}

#sitecontent {
    width: 100%;
    min-width: 640px;
    min-height: 640px;
    top: 100px;
    left: 0px;
    position: absolute;
    z-index: -50;
}

.compascontainer {
    position: fixed;
    top: 100px;
    width: 100%;
}

.compasmenu {
    width: 70%;
    height: 70%;
    margin: auto;
    display: block;
    max-width: 873px;
    max-height: 901px;
}

.pagetitlecontainer {
    position: relative;
    top: 10px;
    width: 100%;
    display: flex;
    justify-content: center;
    z-index: inherit;
}

.pagetitle {
    color: white;
    font-size: 42px;
    background-color: rgba(7, 7, 14, 0.85);
    border: 5px solid #800033;
    border-radius: 25px;
    padding: 10px;
    padding-top: 5px;
    padding-bottom: 5px;
    z-index: inherit;
}

.pagebodycontainer {
    position: relative;
    top: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
    z-index: inherit;
}

.pagebody {
    color: white;
    font-size: 14px;
    position: relative;
    width: 80%;
    line-height: 1.5em;
    background-color: rgba(7, 7, 14, 0.85);
    border: 5px solid #502;
    border-radius: 25px;
    z-index: inherit;
    padding: 2em;
    min-width: 750px;
    max-width: 1024px;
}

p.firstpar {
    margin-top: 0em;
    text-indent: 2em;
    padding: 0 15px 0 15px;
    z-index: inherit;
}

p.nextpar {
    margin-top: 1em;
    text-indent: 2em;
    padding: 0 15px 0 15px;
    z-index: inherit;
}

p.centerpar {
    text-align: center;
    padding: 0 15px 0 15px;
    z-index: inherit;
    margin-top: 1em;
}

ul.nextpar {
    margin-top: 1em;
    margin-left: 3em;
    padding: 0 15px 0 15px;
    z-index: inherit;
}

.centertext {
    text-align: center;
}

/* RPG Page Section */

.rpgcard {
    background-color: rgb(22, 16, 22);
    padding: auto;
    margin-left: 1em;
    margin-right: 1em;
    margin-top: 2em;
    border: 5px solid #502;
    border-radius: 25px;
    min-width: 675px;
}

.rpgcardface {
    background-color: rgb(0, 0, 0);
    padding: 0.2em;
    margin: 1em;
    margin-bottom: 0.25em;
    border: 3px solid rgb(255, 255, 255);
    border-radius: 25px;
    text-align: justify;
    width: 256px;
    height: 256px;
}

.rpgcardsep {
    margin: auto;
    margin-top: .35em;
    margin-bottom: .35em;
    width: 90%;
    border: 1px solid #ffffff;
}

.rpgcardstats {
    text-align: left;
    width: 85%;
    margin: auto;
}

.rpgstatshort {
    width: 60px;
    text-align: center;
    font-size: 28;
    font-weight: 600;
}

.rpgstatname {
    text-align: center;
    font-size: 28;
    font-style: oblique;
    font-variant: small-caps;
}

.rpgstat {
    width: 60px;
    text-align: center;
}

.rpgskillname {
    margin: .5em;
    margin-left: 2em;
    font-size: 28;
    font-weight: 600;
    font-style: oblique;
}

.rpgclass {
    font-size: 22px;
    padding: .15em;
    text-align: center;
}

/* Historical HTML5 game gallery: scoped styles, no shell/navigation changes. */
.cw-game-picker { display:flex; flex-wrap:nowrap; justify-content:center; gap:12px; margin:22px auto; overflow-x:auto; overflow-y:hidden; padding:0 0 12px; scrollbar-width:thin; scrollbar-color:#800033 #190d18; }
.cw-game-button { flex:0 0 130px; box-sizing:border-box; background:#190d18; border:2px solid #800033; border-radius:10px; color:white; cursor:pointer; padding:8px; text-align:center; }
.cw-game-button:hover, .cw-game-button[aria-pressed="true"] { border-color:#e05a91; background:#3b1329; }
.cw-game-button img { width:110px; height:110px; object-fit:contain; display:block; margin:0 auto 5px; }
.cw-game-button span, .cw-game-button small { display:block; }
.cw-game-button small { color:#bbb; font-size:11px; }
.cw-game-stage { position:relative; box-sizing:content-box; width:640px; height:1136px; aspect-ratio:auto; margin:15px auto; background:black; border:3px solid #800033; border-radius:8px; overflow:hidden; }
.cw-game-stage iframe { border:0; display:block; width:100%; height:100%; background:#000; }
.cw-showcase { border:2px solid #800033; border-radius:12px; padding:18px; margin:18px 0; background:#140d16; }
.cw-showcase h3 { margin:0 0 8px; }
.cw-project-gallery { display:flex; flex-wrap:wrap; justify-content:center; gap:16px; margin:18px auto; }
.cw-project-gallery figure { width:154px; margin:0; text-align:center; }
.cw-project-gallery img { width:145px; height:145px; object-fit:cover; border:2px solid #502; border-radius:8px; }
.cw-project-gallery figcaption { margin-top:5px; line-height:1.35; }
.cw-project-gallery small { display:block; color:#bbb; }

/* Archived GameMaker canvases must be hosted at native CSS pixel dimensions. */
.cw-game-button { min-width:0; }
.cw-game-picker:focus-within { scroll-behavior:smooth; }
.cw-game-stage iframe { overflow:hidden; }

/* Never scale the legacy canvas: game input coordinates depend on the native viewport. */

/* Old iPhone Retina-era GameMaker exports: render the centered 1x game area at 2x.
   Scale the entire iframe, NEVER its canvas: the browser then remaps pointer input
   correctly into the unmodified GameMaker document. Super 21 is not Retina-sized. */
.cw-game-stage.cw-game-retina iframe {
    position: absolute;
    left: -50%;
    top: -50%;
    width: 100%;
    height: 100%;
    transform: scale(2);
    transform-origin: top left;
}

/* Reusable, dependency-free slideshow and compact technology gallery. */
.cw-carousel { max-width:495px; margin:22px auto; text-align:center; }
.cw-carousel-slide { margin:0; }
.cw-carousel-slide[hidden] { display:none; }
.cw-carousel-slide img { display:block; max-width:100%; max-height:560px; width:auto; height:auto; margin:auto; border:2px solid #800033; border-radius:12px; }
.cw-carousel-slide figcaption { margin:8px auto; color:#ccc; font-size:13px; }
.cw-carousel-controls { display:flex; align-items:center; justify-content:center; gap:20px; margin:12px auto; }
.cw-carousel-controls button { border:2px solid #800033; border-radius:8px; padding:5px 18px; color:white; background:#190d18; cursor:pointer; }
.cw-carousel-controls button:hover, .cw-carousel-controls button:focus-visible { border-color:#e05a91; }
.cw-carousel-count { min-width:55px; font-size:13px; color:#ccc; }
.cw-tech-list { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:20px; margin:20px auto; }
.cw-tech-item { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-width:112px; padding:12px; border:1px solid #502; border-radius:10px; background:#140d16; }
.cw-tech-item img { max-width:76px; max-height:64px; width:auto; height:auto; object-fit:contain; }
.cw-tech-item span { font-size:12px; color:#ddd; }

/* About-page variant: archive artwork floats among the copy, not in a frame.
   The base .cw-carousel remains manual and reusable elsewhere. */
.cw-carousel-float { float:right; width:39%; max-width:285px; margin:8px 0 14px 25px; text-align:center; }
.cw-carousel-float .cw-carousel-slide img { width:100%; max-height:none; height:auto; border:0; border-radius:0; background:transparent; }
.cw-carousel-float .cw-carousel-slide figcaption { display:none; }
.cw-carousel-float .cw-carousel-controls { gap:10px; margin:3px auto 0; opacity:.7; }
.cw-carousel-float .cw-carousel-controls button { padding:1px 8px; font-size:13px; }
.cw-carousel-float .cw-carousel-count { min-width:35px; font-size:11px; }
.cw-flow-clear { clear:both; }

/* Explicit 4 + 3 platform rows, with uniform image/text tile geometry. */
.cw-tech-list { display:flex; flex-direction:column; gap:16px; align-items:center; }
.cw-tech-row { display:flex; justify-content:center; flex-wrap:nowrap; gap:16px; width:100%; }
.cw-tech-row .cw-tech-item { box-sizing:border-box; flex:0 0 136px; width:136px; height:120px; min-width:0; padding:10px; gap:8px; }
.cw-tech-row .cw-tech-item img, .cw-tech-ai-symbol { display:block; width:64px; height:64px; max-width:64px; max-height:64px; object-fit:contain; flex:0 0 64px; }
.cw-tech-row .cw-tech-item span:last-child { font-size:12px; line-height:1.3; text-align:center; }
.cw-tech-ai-symbol { box-sizing:border-box; display:flex; align-items:center; justify-content:center; background:#333; color:#e05a91; font-size:27px; font-weight:700; }

/* Editorial typography: retain the original site shell and palette. */
.pagebody {
    font-size: 17px;
    line-height: 1.7;
    padding: 2.2em 2.6em 2.6em;
    box-sizing: border-box;
}
.pagebody p.firstpar, .pagebody p.nextpar {
    padding: 0;
    text-indent: 0;
    margin: 0 0 1.15em;
    line-height: inherit;
}
.pagebody p.centerpar { padding: 0; margin: 1.2em auto; line-height: 1.6; }
.pagebody h3 { margin: 1.65em 0 0.65em; font-size: 20px; line-height: 1.3; }
.pagebody h3:first-child { margin-top: 0; }
.pagebody small { font-size: 0.83em; line-height: 1.6; }
.pagebody a { text-underline-offset: 3px; }
.pagebody a:focus-visible, .pagebody button:focus-visible { outline: 2px solid #f080a6; outline-offset: 3px; }
.pagebody .cw-showcase { padding: 22px 24px; margin: 20px 0; }
.pagebody .cw-showcase h3 { margin: 0 0 0.6em; }
.pagebody .cw-project-gallery { row-gap: 24px; margin: 22px auto 30px; }
.pagebody .cw-project-gallery figcaption { margin-top: 8px; line-height: 1.45; }
.pagebody .cw-project-gallery small { font-size: 12px; }
.pagebody .cw-game-picker { margin: 18px auto 28px; }
.pagebody .cw-game-button small { font-size: 11px; }
.pagebody .cw-tech-list { margin: 26px auto 12px; }
.pagebody .cw-tech-item span { font-size: 12px; }
.pagebody .cw-carousel-float { margin-top: 6px; margin-bottom: 18px; }
/* Scoped site introduction and contact presentation. */
.cw-lead { font-size: 1.18em; line-height: 1.6; color: #fff; }
.cw-lead strong { color: #fff; }
.cw-section-rule { width: 72px; height: 3px; border: 0; background: #800033; margin: 24px 0; }
.cw-link-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 26px 0 8px; }
.cw-link-card { display: block; padding: 17px 15px; border: 1px solid #800033; border-radius: 10px; background: #170d18; color: #fff; text-decoration: none; }
.cw-link-card:hover, .cw-link-card:focus-visible { border-color: #e05a91; background: #321429; }
.cw-link-card strong { display: block; font-size: 1.07em; margin-bottom: 6px; }
.cw-link-card span { display: block; font-size: 0.84em; color: #d0c6cc; line-height: 1.55; }
.cw-contact-panel { margin: 25px 0; padding: 23px 25px; border: 2px solid #800033; border-radius: 14px; background: #170d18; text-align: center; }
.cw-contact-panel a { color: #fff; font-size: 1.24em; font-weight: 650; overflow-wrap: anywhere; text-decoration: underline; }
.cw-contact-panel p { margin: 10px 0 0; font-size: 0.86em; color: #cfc2cc; }
.cw-note { color: #c9bdc5; font-size: 0.88em; }
@media (max-width: 900px) {
    .pagebody { padding: 1.8em 2em 2.2em; }
    .cw-link-grid { grid-template-columns: 1fr; }
}
