Initial commit
This commit is contained in:
commit
7b51551856
27 files changed
+911
No files matched your search
@@ -0,0 +1,164 @@
|
||||
:root{
|
||||
--bg:#0a1119;
|
||||
--glass:#121d29;
|
||||
--edge:#27384a;
|
||||
--ink:#dfe7ee;
|
||||
--dim:#8497a9;
|
||||
--ice:#8fd3ff;
|
||||
--hot:#ff4f8b;
|
||||
--display:"Bahnschrift","Oswald","Arial Narrow","Roboto Condensed",sans-serif;
|
||||
--body:"Segoe UI Variable Text","Segoe UI","Helvetica Neue",Arial,sans-serif;
|
||||
--mono:ui-monospace,"Cascadia Mono","JetBrains Mono",Consolas,monospace;
|
||||
}
|
||||
*{box-sizing:border-box;margin:0}
|
||||
html{background:var(--bg);color-scheme:dark}
|
||||
body{
|
||||
min-height:100vh;font:400 1rem/1.55 var(--body);color:var(--ink);
|
||||
background:
|
||||
linear-gradient(115deg,transparent 0 62%,rgba(143,211,255,.045) 62% 63%,transparent 63%),
|
||||
url(/assets/shatter.svg) center/cover no-repeat fixed,
|
||||
radial-gradient(120% 80% at 85% 20%,#13263a 0,var(--bg) 60%);
|
||||
}
|
||||
a{color:inherit;text-decoration:none}
|
||||
:focus-visible{outline:2px solid var(--ice);outline-offset:3px}
|
||||
|
||||
/* top bar */
|
||||
.bar{
|
||||
position:sticky;top:0;z-index:5;display:flex;align-items:stretch;gap:2px;
|
||||
padding:0 clamp(1rem,4vw,3rem);height:3.4rem;
|
||||
background:rgba(10,17,25,.78);backdrop-filter:blur(10px);
|
||||
border-bottom:1px solid var(--edge);
|
||||
}
|
||||
.brand{
|
||||
display:flex;align-items:center;margin-right:auto;
|
||||
font:700 1.35rem/1 var(--display);letter-spacing:.04em;
|
||||
}
|
||||
.brand i{font-style:normal;color:var(--hot);margin:0 .08em}
|
||||
.bar nav{display:flex;gap:2px}
|
||||
.bar nav a{
|
||||
display:flex;align-items:center;padding:0 1.5rem;color:var(--dim);
|
||||
font:500 1rem var(--display);letter-spacing:.06em;
|
||||
clip-path:polygon(14px 0,100% 0,calc(100% - 14px) 100%,0 100%);
|
||||
transition:background .15s,color .15s;
|
||||
}
|
||||
.bar nav a:hover{color:var(--ink);background:rgba(143,211,255,.08)}
|
||||
.bar nav a[aria-current]{color:var(--bg);background:var(--ice)}
|
||||
@media(max-width:640px){.bar nav a{padding:0 .8rem}.brand{font-size:1.1rem}}
|
||||
|
||||
/* page frame */
|
||||
main{max-width:1080px;margin:0 auto;padding:clamp(2rem,6vw,4.5rem) clamp(1rem,4vw,2rem) 6rem}
|
||||
.title{font:700 clamp(2.6rem,7vw,4.6rem)/.95 var(--display);letter-spacing:.01em;margin-bottom:.9rem}
|
||||
.lede{max-width:46ch;color:var(--dim)}
|
||||
|
||||
/* home */
|
||||
.home{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - 3.4rem)}
|
||||
.home p{margin:auto 0;font:400 .95rem var(--mono);color:var(--dim)}
|
||||
.logo{display:flex;align-items:baseline;font:700 clamp(3.5rem,13vw,8.5rem)/1 var(--display);letter-spacing:.04em}
|
||||
.logo span{
|
||||
background:linear-gradient(100deg,var(--ink) 42%,#fff 50%,var(--ink) 58%) 120% 0/300% 100%;
|
||||
-webkit-background-clip:text;background-clip:text;color:transparent;
|
||||
animation:split .8s .3s cubic-bezier(.2,.7,.2,1) both,glint 6s 1.4s ease-in-out infinite;
|
||||
}
|
||||
.logo .r{--dir:-1;animation-delay:.3s,1.6s}
|
||||
.logo i{
|
||||
display:inline-block;font-style:normal;color:var(--hot);margin:0 .08em;
|
||||
animation:strike .55s cubic-bezier(.2,.7,.2,1) both,pulse 3.2s 1.2s ease-in-out infinite;
|
||||
}
|
||||
@keyframes split{from{opacity:0;transform:translateX(calc(.35em * var(--dir,1)))}}
|
||||
@keyframes glint{0%,70%{background-position:120% 0}100%{background-position:-20% 0}}
|
||||
@keyframes strike{from{opacity:0;transform:translate(.15em,-.7em) skewX(-18deg) scaleY(1.8)}}
|
||||
@keyframes pulse{50%{text-shadow:0 0 .3em rgba(255,79,139,.65)}}
|
||||
.home p::after{content:"";display:inline-block;width:.6ch;height:1.1em;margin-left:.5ch;vertical-align:-.2em;background:var(--ice);animation:blink 1.1s steps(1) infinite}
|
||||
@keyframes blink{50%{opacity:0}}
|
||||
|
||||
/* services */
|
||||
.group{margin-top:3.5rem}
|
||||
.group h2{font:600 1.5rem var(--display);letter-spacing:.03em;display:flex;align-items:baseline;gap:1rem;margin-bottom:1.3rem}
|
||||
.group h2 small{font:400 .9rem var(--body);color:var(--dim);letter-spacing:0}
|
||||
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem}
|
||||
@media(min-width:700px){.grid>:nth-child(3n+2){margin-top:1.4rem}.grid>:nth-child(3n){margin-top:.5rem}}
|
||||
|
||||
.shard{
|
||||
--a:16px;--b:30px;--c:22px;--line:var(--edge);--glint:rgba(143,211,255,.22);
|
||||
--cut:polygon(0 var(--a),var(--b) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--b)) 100%,0 100%);
|
||||
position:relative;display:flex;flex-direction:column;gap:.35rem;min-height:9.5rem;
|
||||
padding:1.4rem 1.3rem 1.2rem;background:var(--line);clip-path:var(--cut);
|
||||
transition:transform .18s ease,background .18s;
|
||||
}
|
||||
.shard::before{
|
||||
content:"";position:absolute;inset:1px;z-index:0;clip-path:var(--cut);
|
||||
background:
|
||||
radial-gradient(220px circle at var(--mx,-50%) var(--my,-50%),var(--glint),transparent 70%),
|
||||
linear-gradient(160deg,rgba(255,255,255,.05),transparent 40%),var(--glass);
|
||||
}
|
||||
.shard>*{position:relative;z-index:1}
|
||||
.shard:nth-child(3n+2){--a:26px;--b:14px;--c:34px}
|
||||
.shard:nth-child(3n){--a:10px;--b:40px;--c:14px}
|
||||
.shard:nth-child(5n){--a:34px;--b:22px;--c:18px}
|
||||
.shard:hover,.shard:focus-visible{--line:var(--ice);transform:translate(-3px,-3px)}
|
||||
.shard h3{font:600 1.45rem/1.1 var(--display);letter-spacing:.02em}
|
||||
.shard p{color:var(--dim);font-size:.92rem;max-width:30ch}
|
||||
.host{margin-top:auto;padding-top:.8rem;font:400 .8rem var(--mono);color:var(--ice)}
|
||||
.admin{--glint:rgba(255,79,139,.22)}
|
||||
.admin:hover,.admin:focus-visible{--line:var(--hot)}
|
||||
.admin .host{color:var(--hot)}
|
||||
.badge{align-self:flex-start;margin-bottom:.3rem;padding:.1rem .6rem .1rem .5rem;font:500 .78rem var(--body);color:var(--bg);background:var(--hot);clip-path:polygon(0 0,100% 0,calc(100% - 7px) 100%,0 100%)}
|
||||
.heart{color:var(--hot)}
|
||||
@media(prefers-reduced-motion:reduce){.shard{transition:none}.home p::after,.logo span,.logo i{animation:none}}
|
||||
|
||||
/* tools, status, chips */
|
||||
[hidden]{display:none!important}
|
||||
.tools{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2rem}
|
||||
input,textarea{font:inherit;color:var(--ink);background:var(--glass);border:1px solid var(--edge);border-radius:0;padding:.65rem .8rem;width:100%}
|
||||
input:focus,textarea:focus{outline:none;border-color:var(--ice);box-shadow:-4px 0 0 var(--ice)}
|
||||
.tools input{max-width:20rem}
|
||||
.hint{color:var(--dim);font-size:.85rem}
|
||||
kbd{font:.8rem var(--mono);border:1px solid var(--edge);padding:0 .35rem}
|
||||
.dot{position:absolute;top:1.1rem;right:1.7rem;z-index:2;width:9px;height:9px;rotate:45deg;background:var(--dim);opacity:.6}
|
||||
.dot[data-s=up]{background:#7dffc2;box-shadow:0 0 8px #7dffc2;opacity:1}
|
||||
.dot[data-s=down]{background:transparent;border:1px solid var(--dim)}
|
||||
.tags{display:flex;flex-wrap:wrap;gap:.4rem}
|
||||
.chip{font:.8rem var(--body);padding:.15rem .8rem .15rem .7rem;color:var(--ink);background:var(--edge);border:0;clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%)}
|
||||
button.chip{cursor:pointer}
|
||||
.chip[aria-pressed=true]{background:var(--ice);color:var(--bg)}
|
||||
.shard .tags{margin-top:auto;padding-top:.8rem}
|
||||
.empty{grid-column:1/-1;max-width:48ch;color:var(--dim)}
|
||||
.empty code{font:.85rem var(--mono);color:var(--ice)}
|
||||
|
||||
/* contact */
|
||||
.split{display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;margin-top:2.5rem}
|
||||
@media(max-width:800px){.split{grid-template-columns:1fr}}
|
||||
.info{list-style:none;padding:0;display:grid;gap:.9rem;align-content:start}
|
||||
.info li{display:flex;gap:1rem;align-items:baseline;padding-bottom:.7rem;border-bottom:1px solid var(--edge)}
|
||||
.info li>span{min-width:5rem;color:var(--dim)}
|
||||
.info button{margin-left:auto}
|
||||
.form{display:grid;gap:1rem}
|
||||
label{display:grid;gap:.35rem;font-size:.9rem;color:var(--dim)}
|
||||
textarea{min-height:10rem;resize:vertical}
|
||||
.hp{position:absolute;left:-9999px;width:1px}
|
||||
.btn{justify-self:start;padding:.75rem 2.2rem .75rem 1.6rem;border:0;cursor:pointer;color:var(--bg);background:var(--ice);font:600 1.05rem var(--display);letter-spacing:.04em;clip-path:polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%);transition:background .15s}
|
||||
.btn:hover{background:#fff}.btn:disabled{opacity:.5;cursor:wait}
|
||||
#out{min-height:1.5em;color:var(--hot)}#out[data-ok]{color:#7dffc2}
|
||||
|
||||
/* socials */
|
||||
.social{--brand:var(--ice);--glint:color-mix(in srgb,var(--brand) 28%,transparent);min-height:11.5rem;text-align:left;font:inherit;color:inherit;border:0;cursor:pointer;align-items:flex-start}
|
||||
.social:hover,.social:focus-visible{--line:var(--brand)}
|
||||
.social .ico{width:2.6rem;height:2.6rem;margin-bottom:.7rem;background:var(--brand);-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;transition:transform .2s}
|
||||
.social:hover .ico{transform:rotate(-6deg) scale(1.08)}
|
||||
.social .host{color:var(--dim)}
|
||||
.social:hover .host{color:var(--brand)}
|
||||
@media(prefers-reduced-motion:reduce){.social .ico{transition:none}}
|
||||
|
||||
/* admin */
|
||||
.bar nav a.admin-link{margin-left:1rem}
|
||||
#admin{margin-top:2.5rem}
|
||||
.login{max-width:22rem}
|
||||
.adminbar{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.2rem}
|
||||
.adminbar h2{font:600 1.5rem var(--display);letter-spacing:.03em}
|
||||
.msg{display:grid;gap:.6rem;margin-bottom:1rem;padding:1.1rem 1.3rem;background:var(--glass);border-left:3px solid var(--ice);clip-path:polygon(0 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%)}
|
||||
.msg header{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;align-items:baseline}
|
||||
.msg header a{color:var(--ice)}
|
||||
.msg time{margin-left:auto;color:var(--dim);font-size:.85rem}
|
||||
.msg p{white-space:pre-wrap;overflow-wrap:anywhere;max-width:70ch}
|
||||
.msg .tags{margin:0}
|
||||
.msg .chip{display:inline-block;text-decoration:none}
|
||||
Reference in new issue
Block a user