@font-face{font-family:'Lustra';src:url('../fonts/Lustra.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:'Lustra';src:url('../fonts/LustraBold.otf') format('opentype');font-weight:700;font-display:swap}
@font-face{font-family:'Lustra';src:url('../fonts/LustraBlack.otf') format('opentype');font-weight:900;font-display:swap}
@font-face{font-family:'Kern';src:url('../fonts/KernRegular.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:'Kern';src:url('../fonts/KernMedium.otf') format('opentype');font-weight:500;font-display:swap}
@font-face{font-family:'Kern';src:url('../fonts/KernBold.otf') format('opentype');font-weight:700;font-display:swap}

:root{--bg:#F7F7F5;--fg:#050505;--mute:#DEDEDC;--dim:#6B6B66;--acc:#00D663;color-scheme:light}
:root[data-theme="dark"]{--bg:#050505;--fg:#F7F7F5;--mute:#2B2B29;--dim:#8E8E8A;color-scheme:dark}


html,body{margin:0;padding:0;background:var(--bg);overflow:hidden;overscroll-behavior:none}
body{-webkit-font-smoothing:antialiased}
a{color:var(--fg);text-decoration:none}
a:hover{color:var(--acc)}
*{box-sizing:border-box}
*:focus{outline:none}
*:focus-visible{outline:2px solid var(--acc);outline-offset:4px}

@media (max-width: 860px){
	html,body{overflow:visible!important}
}

@keyframes fragIn{from{opacity:0;transform:translate3d(var(--fx),var(--fy),0) scale(var(--fs)) rotate(var(--fr))}to{opacity:1;transform:scale(1.014)}}
@keyframes fragOut{from{opacity:1;transform:scale(1.014)}to{opacity:0;transform:translate3d(var(--fx),var(--fy),0) scale(var(--fs)))}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

[data-card] [data-frag]{opacity:0}
[data-card][data-seen="1"] [data-frag]{animation:fragIn 820ms cubic-bezier(0.16,1,0.3,1) var(--d) both}
[data-card] [data-meta]{opacity:0;transform:translateY(12px);transition:opacity 520ms linear 420ms,transform 760ms cubic-bezier(0.16,1,0.3,1) 420ms}
[data-card][data-seen="1"] [data-meta]{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion: reduce){
	[data-card][data-seen="1"] [data-frag]{animation:fadeIn 200ms linear both}
	[data-card] [data-meta]{transition:opacity 200ms linear;transform:none}
}

/* Layout */

.rs-home{position:relative;width:100%;height:100svh;overflow:hidden;background:var(--bg);color:var(--fg);font-family:'Kern',ui-sans-serif,system-ui,sans-serif}
@media (max-width: 860px){
	.rs-home{height:auto;overflow:visible}
}

.rs-bg{position:fixed;inset:0;background:#050505;z-index:0}

/* Overlay menu */




@media (max-width: 860px){
}

/* Canvas + hero */

.rs-canvas{position:absolute;inset:0;min-height:0;z-index:2;background:var(--bg);transform-origin:20% 50%;transition:transform 900ms cubic-bezier(0.16,1,0.3,1);transform:none}
@media (max-width: 860px){
	.rs-canvas{position:relative;min-height:100svh}
}

.rs-home.is-menu-open .rs-canvas{transform:translateX(-42%) rotate(-9deg) scale(0.9)}
@media (max-width: 860px){
	.rs-home.is-menu-open .rs-canvas{transform:translateX(-104%) scale(0.94)}
}
@media (prefers-reduced-motion: reduce){
	.rs-home.is-menu-open .rs-canvas{transform:translateX(-30%)}
}

.rs-hero{position:absolute;inset:0;display:grid;grid-template-columns:20% 60% 20%;pointer-events:auto}
.rs-home.is-menu-open .rs-hero{pointer-events:none}
@media (max-width: 860px){
	.rs-hero{display:none}
}

.rs-aside{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,2.6vh,30px) clamp(18px,3vw,44px);z-index:5}
.rs-aside--left{grid-column:1}
.rs-aside--left > .rs-logo{margin-top:3px}
.rs-aside--right{grid-column:3;align-items:flex-end}


.rs-info{display:flex;flex-direction:column;justify-content:center;gap:22px}
.rs-info__row{display:flex;flex-direction:column;gap:5px}
.rs-info__label{font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--dim)}
.rs-info__value{font-family:'Kern',sans-serif;font-weight:700;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--fg)}

.rs-contact{display:flex;flex-direction:column;gap:5px}
.rs-contact__mail{font-family:'Kern',sans-serif;font-weight:500;font-size:12px;letter-spacing:0.02em;color:var(--fg)}
.rs-contact__tel{display:block;font-size:12px;letter-spacing:0.02em;color:var(--dim)}

/* Marquee stage */

.rs-stage-wrap{grid-column:2;position:relative;overflow:hidden;z-index:3}
.rs-stage{position:absolute;inset:0;cursor:none;touch-action:none}
.rs-list{position:absolute;inset:0}
.rs-item{position:absolute;left:0;right:0;top:50%;height:26vh;margin-top:-13vh;display:flex;align-items:center;justify-content:center;will-change:transform}
.rs-item__title{font-family:'Lustra',serif;font-weight:900;font-size:min(20vh,13.5vw);line-height:0.86;letter-spacing:-0.045em;text-transform:uppercase;white-space:nowrap;color:var(--mute);transition:color 260ms linear}

/* Hover preview */

.rs-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:4;opacity:0;transition:opacity 320ms linear;will-change:transform}
.rs-preview__grid{position:absolute;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr);width:min(26vw,39vh);height:52vh}
.rs-frag{position:relative;overflow:hidden;background-repeat:no-repeat;background-size:300% 400%;will-change:transform,opacity}

/* Right aside controls */


.rs-theme-switch{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.rs-theme-btn{display:flex;align-items:center;gap:9px;background:none;border:none;padding:2px 0;cursor:pointer;font-family:'Kern',sans-serif;font-weight:500;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--dim);transition:color 140ms linear}
.rs-theme-btn:hover{color:var(--fg)}
.rs-theme-btn[aria-pressed="true"]{color:var(--fg)}
.rs-theme-dot{width:7px;height:7px;background:transparent;display:block}
.rs-theme-btn[aria-pressed="true"] .rs-theme-dot{background:var(--acc)}

.rs-scroll-hint{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.rs-scroll-hint__arrow{font-size:14px;line-height:1;color:var(--acc)}

/* Mobile top/bottom bars */

.rs-mobile-top,.rs-mobile-bottom{display:none}
@media (max-width: 860px){
	.rs-mobile-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:16px 18px;z-index:6}
	.rs-mobile-top .rs-logo img{width:73px}
	.rs-mobile-bottom{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;z-index:6;border-top:1px solid var(--mute)}
}
.rs-mobile-bottom__discipline{font-family:'Kern',sans-serif;font-weight:700;font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--fg)}
.rs-mobile-bottom__year{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:0.14em;color:var(--fg)}
.rs-dot{width:6px;height:6px;background:var(--acc);display:block}

/* Mobile stacked cards */

.rs-mobile-cards{display:none}
@media (max-width: 860px){
	.rs-mobile-cards{position:relative;z-index:3;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
}
.rs-mobile-cards__bar{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg)}
.rs-mobile-cards__bar .rs-logo img{width:73px}

.rs-card{position:relative;display:block;height:76svh;overflow:hidden;background:#101010;color:#F7F7F5}
.rs-card__frags{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr)}

.rs-card__meta{position:absolute;left:0;right:0;color:#F7F7F5}
.rs-card__meta--top{top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;font-family:'Kern',sans-serif;font-weight:700;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;text-shadow:0 1px 14px rgba(5,5,5,0.55)}
.rs-card__meta--bottom{bottom:0;display:block;padding:0 14px 14px;font-family:'Lustra',serif;font-weight:900;font-size:clamp(34px,12vw,68px);line-height:0.88;letter-spacing:-0.04em;text-transform:uppercase;text-shadow:0 2px 22px rgba(5,5,5,0.5);transition-delay:520ms}

.rs-mobile-cards__footer{display:flex;align-items:center;justify-content:space-between;padding:22px 16px calc(30px + env(safe-area-inset-bottom));border-top:1px solid var(--mute)}
.rs-mobile-cards__footer a{font-family:'Kern',sans-serif;font-weight:700;font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--fg)}
.rs-mobile-cards__footer .rs-dot{width:7px;height:7px}

/* Custom cursor */

.rs-cursor{position:fixed;top:0;left:0;width:10px;height:10px;background:#00D663;z-index:60;pointer-events:none;opacity:0;transition:width 160ms cubic-bezier(0.16,1,0.3,1),height 160ms cubic-bezier(0.16,1,0.3,1),opacity 200ms linear}
@media (pointer: coarse){
	.rs-cursor{display:none}
}
