body { font-family: 'Inter', sans-serif; }
.font-heading { font-family: 'Arima', system-ui; }

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px;
}
select option { background: #000; color: #fff; }
optgroup { background: #000; color: #fff; font-style: normal; font-weight: 600; }

/* Hide all scrollbars */
::-webkit-scrollbar { width: 0; height: 0; }
* { scrollbar-width: none; -ms-overflow-style: none; }

/* Security: disable text selection on UI chrome */
body { -webkit-user-select: none; -moz-user-select: none; user-select: none; -webkit-touch-callout: none; }
#inputText, #outputText { -webkit-user-select: text; -moz-user-select: text; user-select: text; }

/* Security: disable print */
@media print { body { display: none !important; } }

@keyframes blobFloat1 {
    0%   { transform: translate(0px, 0px) scale(1); }
    33%  { transform: translate(50px, -50px) scale(1.1); }
    66%  { transform: translate(-30px, 30px) scale(0.9); }
    100% { transform: translate(0px, 0px) scale(1); }
}
@keyframes blobFloat2 {
    0%   { transform: translate(0px, 0px) scale(1); }
    33%  { transform: translate(-50px, 50px) scale(1.2); }
    66%  { transform: translate(30px, -30px) scale(0.8); }
    100% { transform: translate(0px, 0px) scale(1); }
}
.bg-blob {
    position: fixed; border-radius: 50%; filter: blur(80px);
    opacity: 0.08; z-index: -1; pointer-events: none; background: white;
}
.blob-1 { width: 50vw; height: 50vw; top: -20vh; left: -10vw; animation: blobFloat1 20s infinite alternate ease-in-out; }
.blob-2 { width: 60vw; height: 60vw; bottom: -30vh; right: -10vw; animation: blobFloat2 25s infinite alternate ease-in-out; }

@keyframes steamRise {
    0%   { transform: translateY(4px); opacity: 0; }
    40%  { opacity: 1; }
    80%  { opacity: 1; }
    100% { transform: translateY(-4px); opacity: 0; }
}
.steam-1 { animation: steamRise 2s infinite ease-out; }
.steam-2 { animation: steamRise 2s infinite ease-out 0.7s; }
.steam-3 { animation: steamRise 2s infinite ease-out 1.4s; }

@keyframes logoSpin {
    0%   { transform: translateZ(0) rotate(0deg);   animation-timing-function: cubic-bezier(0.4,0,0.2,1); }
    20%  { transform: translateZ(0) rotate(360deg); }
    100% { transform: translateZ(0) rotate(360deg); }
}
@-webkit-keyframes logoSpin {
    0%   { -webkit-transform: translateZ(0) rotate(0deg);   animation-timing-function: cubic-bezier(0.4,0,0.2,1); }
    20%  { -webkit-transform: translateZ(0) rotate(360deg); }
    100% { -webkit-transform: translateZ(0) rotate(360deg); }
}
.logo-icon {
    animation: logoSpin 3s infinite;
    -webkit-animation: logoSpin 3s infinite;
    display: block;
    transform-origin: center center;
    -webkit-transform-origin: center center;
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.spin-icon {
    animation: logoSpin 3s infinite;
    -webkit-animation: logoSpin 3s infinite;
    display: inline-block;
    transform-origin: center center;
    -webkit-transform-origin: center center;
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    flex-shrink: 0;
}

/* ── Loader ───────────────────────────────────────────── */
#rt-loader {
    position: fixed; inset: 0; z-index: 9999;
    display: flex; align-items: center; justify-content: center;
    pointer-events: none;
}
#rt-loader-bg {
    position: absolute; inset: 0; background: #000;
    transition: opacity 0.6s ease;
}
#rt-loader-inner { position: relative; display: flex; align-items: center; justify-content: center; z-index: 1; }
/* Move wrapper — handles translate+scale toward header */
#rt-loader-move { display: block; line-height: 0; transform-origin: center center; }
/* SVG — handles rotation only (logoSpin added after fill) */
#rt-loader-svg { width: 100px; height: 100px; display: block; transform-origin: center center; }
#rt-loader-path {
    fill: transparent; stroke: #fff; stroke-width: 8;
    stroke-linecap: round; stroke-linejoin: round;
}

@keyframes loaderSpinOnce {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
.loader-spin-once {
    animation: loaderSpinOnce 0.7s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}

#rt-page { opacity: 0; transition: opacity 0.5s ease; }
#rt-header-logo { opacity: 0; transition: opacity 0.3s ease; }

/* ── Typewriter cursor ────────────────────────────────── */
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.typing-cursor {
    display: inline-block; width: 2px; height: 1.1em;
    background: rgba(255,255,255,0.75); margin-left: 1px;
    vertical-align: text-bottom; border-radius: 1px;
    animation: blink 0.8s step-end infinite;
}
