:root{--bg:#ebe0c6;--panel:#f6efdc;--ink:#1a1412;--mute:#5a4a40;--rule:#b9a97f;--red:#c9301c;--hi:#dfcda3;--bw:3px;--r:0px;--ruled:none;--hf:'Oswald',Impact,Arial,sans-serif;--bf:'Courier Prime','Courier New',monospace;color-scheme:light}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 var(--bf);padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}

/* header: red name block on the left, account corner on the right */
.top{display:flex;flex-wrap:wrap;align-items:stretch;border-bottom:5px solid var(--ink)}
.brand{flex:1 1 360px;min-width:0;background:var(--red);color:#fff;padding:18px 28px;border-right:5px solid var(--ink)}
h1{font:700 clamp(32px,6vw,46px)/1 var(--hf);margin:0;letter-spacing:.05em;text-transform:uppercase}
.sub{margin:8px 0 0;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.acct{flex:1 1 420px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:14px 28px;font-size:14px}
.acct form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;width:100%}
.acct input{width:170px;flex:1 1 150px;padding:9px 10px;font-size:15px}
.acct button{margin:0;min-height:44px;padding:0 22px;box-shadow:none}
.acct .links{display:flex;gap:16px;font-size:13px}
.acct .who{font-size:14px}
.acct .pickrow{margin-top:2px}

/* tabs: black bar, red for the current page */
nav{display:flex;flex-wrap:wrap;background:var(--ink)}
nav:empty{display:none}
nav a{font:500 16px var(--hf);letter-spacing:.1em;text-transform:uppercase;padding:14px 22px;color:var(--bg);text-decoration:none}
nav a:hover{background:#3a2a24}
nav a.on{background:var(--red);color:#fff}
nav a:focus-visible{outline:3px solid var(--bg);outline-offset:-3px}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
main{max-width:1040px;margin:0 auto;padding:28px 24px 56px}

/* blocks on the page */
.sheet{background:var(--panel);border:var(--bw) solid var(--ink);border-radius:var(--r);padding:24px;margin-bottom:24px;background-image:var(--ruled);background-size:100% 1.55em;background-position:0 .2em}
.sheet>*{background:var(--panel)}
h2{font:700 30px/1.05 var(--hf);letter-spacing:.03em;text-transform:uppercase;margin:0 0 16px;padding-bottom:10px;border-bottom:4px solid var(--ink)}
h3{font:500 18px var(--hf);letter-spacing:.06em;text-transform:uppercase;margin:20px 0 4px}
.meta{color:var(--mute);font-size:14px}
.empty{color:var(--mute);font-style:italic}
label{display:block;font:700 12px var(--bf);letter-spacing:.14em;text-transform:uppercase;margin:14px 0 4px}
input,textarea,select{width:100%;font:inherit;padding:10px 12px;border:2px solid var(--ink);background:var(--panel);color:var(--ink);border-radius:var(--r)}
input[type=checkbox],input[type=radio],input[type=range]{width:auto;padding:0;accent-color:var(--red)}
input[type=color]{padding:2px;height:44px}
textarea{min-height:120px;resize:vertical}
button{font:700 16px var(--hf);letter-spacing:.1em;text-transform:uppercase;min-height:44px;padding:0 20px;border:2px solid var(--ink);background:var(--red);color:#fff;cursor:pointer;margin-top:14px;border-radius:var(--r);box-shadow:3px 3px 0 var(--ink)}
button:hover{background:#8f1d12}
button.ghost{background:var(--ink);color:var(--bg)}
button.ghost:hover{background:#3a2a24}
button:disabled{opacity:.55;cursor:default}
a{color:var(--ink);text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px}
table{width:100%;border-collapse:collapse;font-size:17px}
th,td{text-align:left;padding:12px 12px;border-bottom:1px dashed var(--ink)}
th{font:500 15px var(--hf);letter-spacing:.12em;text-transform:uppercase;background:var(--ink);color:var(--bg);border-bottom:0}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
td.n:first-child{font:700 28px var(--hf);color:var(--red)}
th button{margin:0;padding:0 6px;min-height:0;background:transparent;color:var(--bg);border:0;box-shadow:none;font:inherit;letter-spacing:inherit}
th button:hover{background:transparent;text-decoration:underline}
.tbl{overflow-x:auto}
tr.me td{background:var(--hi)}
tr.me td:first-child{box-shadow:inset 8px 0 0 var(--red)}
.grade{color:var(--red);font:700 26px var(--hf);transform:rotate(-3deg);display:inline-block}
.msg{padding:10px 14px;margin:10px 0;border-left:5px solid var(--ink);background:var(--bg)}
.msg.p{border-left-color:var(--red)}
.msg b{font:500 14px var(--hf);letter-spacing:.08em;text-transform:uppercase}
blockquote{margin:6px 0;padding-left:12px;border-left:3px solid var(--rule)}
.row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.row2{display:grid;grid-template-columns:2fr 1fr;gap:12px}
.item{border:2px dashed var(--ink);padding:14px;margin:14px 0}
.hdr{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:0;border:3px solid var(--ink);margin-bottom:14px}
.hdr>*{padding:10px 14px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:0 -2px -2px 0}
.opt{font:400 17px var(--bf);margin:8px 0;display:flex;gap:10px;align-items:center;min-height:44px;padding:0 12px;border:2px solid var(--ink);background:var(--panel)}
summary{cursor:pointer;margin:10px 0}
.pill{font:500 13px var(--hf);letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--bg);padding:3px 10px;display:inline-block}
.pickrow{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pickrow button{margin:0}
.prow{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
.av{width:140px;height:140px;border:var(--bw) solid var(--ink);background:#fff;object-fit:cover}
div.av{display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;background:var(--bg)}
.sw{width:30px;height:30px;min-height:0;padding:0;margin:2px;border:2px solid var(--ink);box-shadow:none}
.tools{display:flex;flex-wrap:wrap;margin-bottom:6px}
#cv{width:100%;max-width:300px;aspect-ratio:1;border:3px solid var(--ink);background:#fff;touch-action:none;cursor:crosshair;display:block;margin:8px 0}
.media img{max-width:100%}
.media iframe{width:100%;max-width:560px;aspect-ratio:16/9;border:0}
#flash{position:sticky;top:0;z-index:5;margin:0 0 14px}
#flash p{margin:0;padding:12px 16px;border:3px solid var(--ink);background:var(--panel)}
#flash p.err{background:var(--red);color:#fff}
label.check{display:flex;align-items:center;gap:10px}
label.check input{width:auto}

/* landing page */
.hero{display:flex;flex-wrap:wrap;gap:32px;align-items:center;padding:28px 0 36px}
.hero-text{flex:1 1 480px;min-width:0}
.kicker{display:inline-block;background:var(--ink);color:var(--bg);padding:4px 12px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:20px}
.hero .big{font:700 clamp(2.6rem,9vw,5.6rem)/.95 var(--hf);text-transform:uppercase;margin:0 0 22px;padding:0;border:0;letter-spacing:.01em}
.hero .big em{font-style:normal;color:var(--red)}
.hero .intro{max-width:34rem;margin:0 0 28px}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
a.btn{display:inline-block;background:var(--red);color:#fff;padding:14px 30px;text-decoration:none;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);font:700 22px var(--hf);letter-spacing:.1em;text-transform:uppercase}
a.btn:hover{background:#8f1d12}
.art{flex:1 1 340px;display:flex;justify-content:center}
.art-box{position:relative;width:340px;max-width:100%;height:380px;overflow:hidden;background:var(--panel);border:5px solid var(--ink)}
.art-box i{position:absolute;display:block}
.art-box .c1{left:60px;top:36px;width:230px;height:230px;border-radius:50%;background:var(--red)}
.art-box .c2{left:26px;top:0;width:268px;height:268px;border-radius:50%;border:10px solid var(--ink)}
.art-box .b1{left:-40px;top:206px;width:480px;height:42px;background:var(--ink);transform:rotate(-24deg)}
.art-box .b2{left:-40px;top:256px;width:480px;height:16px;background:var(--red);transform:rotate(-24deg)}
.art-box .sq{left:236px;top:268px;width:76px;height:76px;background:var(--ink)}
.stamp{position:absolute;left:20px;top:286px;width:186px;text-align:center;transform:rotate(-7deg);border:4px double #8f1d12;color:#8f1d12;padding:8px 6px;background:var(--panel);font:700 16px/1.2 var(--hf);letter-spacing:.1em;text-transform:uppercase}
.trio{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:28px;margin-top:8px}
.trio>div{border-top:5px solid var(--ink);padding-top:16px}
.trio .num{font:700 60px/1 var(--hf);color:var(--red)}
.trio h3{margin:6px 0}
.trio p{margin:0}

/* logo: cascading, uneven letters */
.logo{width:380px;max-width:100%;background:var(--panel);border:5px solid var(--ink);padding:28px 24px;overflow:hidden;font-family:var(--hf);font-weight:700;text-transform:uppercase;line-height:.85}
.logo div{display:flex;align-items:flex-start}
.logo span{display:inline-block}
.lg-top span:nth-child(1){font-size:128px;transform:rotate(-3deg)}
.lg-top span:nth-child(2){font-size:104px;margin:34px 0 0 -4px;transform:rotate(4deg);color:var(--red)}
.lg-top span:nth-child(3){font-size:140px;margin:70px 0 0 -6px;transform:rotate(-2deg)}
.lg-top span:nth-child(4){font-size:92px;margin:128px 0 0 -2px;transform:rotate(7deg);color:var(--red)}
.lg-bot{margin-top:46px;padding:0 0 22px 34px;background:linear-gradient(var(--ink),var(--ink)) 0 100%/100% 12px no-repeat}
.lg-bot span:nth-child(1){font-size:52px;transform:rotate(-4deg)}
.lg-bot span:nth-child(2){font-size:70px;margin-top:-14px;transform:rotate(3deg);color:var(--red)}
.lg-bot span:nth-child(3){font-size:46px;margin-top:16px;transform:rotate(-6deg)}
.lg-bot span:nth-child(4){font-size:76px;margin-top:-8px;transform:rotate(2deg)}
.lg-bot span:nth-child(5){font-size:50px;margin-top:20px;transform:rotate(-3deg);color:var(--red)}
.lg-bot span:nth-child(6){font-size:66px;margin-top:-10px;transform:rotate(5deg)}
.lg-bot span:nth-child(7){font-size:54px;margin-top:12px;transform:rotate(-2deg)}
@media(max-width:420px){.lg-top span:nth-child(n),.lg-bot span:nth-child(n){zoom:.8}}

/* about page */
.about-text{font-size:19px;max-width:44rem}
.prof-card{display:flex;flex-wrap:wrap;gap:28px;align-items:center;min-height:360px}
.silhouette{flex:0 1 240px;width:240px;max-width:100%;background:var(--bg);border:3px solid var(--ink);padding:0}
.silhouette svg{display:block}
.prof-text{flex:1 1 300px;min-width:0}
.prof-name{font:700 44px/1 var(--hf);text-transform:uppercase;margin:12px 0 4px}
.mutedbanner{border:3px solid var(--red);background:var(--panel);padding:12px 16px;margin:12px 0}

/* footer, small buttons, printing */
.foot{max-width:1040px;margin:0 auto;padding:8px 24px 40px;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
a.btn.small,.sheet a.btn{font-size:16px;padding:10px 18px;box-shadow:3px 3px 0 var(--ink);border-width:2px}
.noprint{margin-top:18px}
@media print{.top,nav,.foot,.noprint,#flash{display:none!important}body{background:#fff}main{padding:0}.sheet{border:0;padding:0}}

/* trap field for bots */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

@media(max-width:560px){.row,.row2{grid-template-columns:1fr}.brand{border-right:0;border-bottom:5px solid var(--ink)}.acct input{width:100%}nav a{padding:12px 14px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
fieldset.kinds{border:2px solid var(--ink);margin:10px 0;padding:8px 12px}
fieldset.kinds legend{font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:0 6px}
.pill.probation{background:var(--red);color:#fff}
.pill.expelled{background:#000;color:var(--red);border:2px solid var(--red)}
.pill.approved{background:var(--ink);color:var(--bg)}
.pill.declined{background:var(--red);color:#fff}
.sheet.standing{border-color:var(--red);box-shadow:6px 6px 0 var(--red)}
.sheet.standing.expelled{background:#1a1412;color:var(--bg)}
